Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

include pathを弄る #247

Open
yosupo06 opened this issue May 7, 2020 · 5 comments
Open

include pathを弄る #247

yosupo06 opened this issue May 7, 2020 · 5 comments

Comments

@yosupo06
Copy link

yosupo06 commented May 7, 2020

- src/
  - unionfind.h
- test/
  - unionfind.test.cpp

のような構造のときに、unionfind.test.cppの中に

#include "unionfind.h"

と書ける方法はありますか? .verify-helper/config.toml

[[languages.cpp.environments]]
CXX = "g++"
CXXFLAGS = ["-I", "src", "-Wall", "-Wextra", "-Wshadow", "-Werror", "-std=c++17", "-O2"]

と書いたら、多分これが原因でドキュメント生成が壊れました (https://github.com/yosupo06/Algorithm/blob/master/.verify-helper/config.toml )

このような風に書きたい理由は、いつもsrcにinclude pathを通していて、通常時とテストファイルでincludeの書き方を統一したいからです

@kmyk
Copy link
Member

kmyk commented May 7, 2020

(現時点では) それをする方法はないはずです。
そういう運用をやりたくなるのは分かるので近いうちに対応したいですが、すぐには修正できない (docs.py は歴史的経緯でコードがしんどい) のでひとまずは ../src/ で誤魔化してほしい 🙏

@yosupo06
Copy link
Author

yosupo06 commented May 7, 2020

ありがとうございます!

@kmyk
Copy link
Member

kmyk commented May 7, 2020

仕様の検討: 追加のインクルードパス (例: src) をどう設定するか

.verify-helper/config.toml に何か設定項目を base_directories = ["src"] などのように足すわけだが、足し方は自明でない。

  • 変数名をどうするか。base_directories source_directories など
  • 複数のディレクトリを設定できるようにするかどうか
    • 複数を許す
      • pros: src だけでなくて tests とかも追加したい場合はあるはずで、これに対応しておける
      • cons: インクルードパスとして設定できるディレクトリがちょうど 1 個だけの言語がある可能性がある
    • 複数を許さない
  • "." を常に含めるかどうか。つまり、変数に [".", "src"] ではなく ["src"] を設定したときは "." が検索対象のディレクトリから外れるようにするべきかどうか
    • 含める
    • 含めない
      • pros: 設定の結果の幅が広がる
      • cons: 注意せず設定すると CI が落ちる
      • cons: カレントディレクトリを検索対象から削除できない言語がありそう
  • 言語ごとの設定を自動で足すかどうか。たとえば CXXFLAGS に自動で -I src を足すべきか
    • 足す (常に)
      • pros: ディレクトリ名を複数回書く必要がなくて便利
      • cons: たとえば CXXFLAGS = ["-Wall", "-O2"] って書いたとき -Wall -O2 には一致しないもの使われたら嫌な感じがする
    • 足す (デフォルト設定のみ)
    • 足さない
      • pros: 言語ごとに設定を変更する必要がなくて開発/メンテが楽
      • pros: (document_base_directories みたいな変数名にしておけば) 仕様が明確

あまり強い意見ではないですが、いまのところ (document_base_directories, 複数を許す, 含めない, 足さない) を選んで document_base_directories = [".", "src"] と書いてもらうのが楽だし仕様が明確でよいかなと思っています。

@yosupo06
Copy link
Author

yosupo06 commented May 8, 2020

    - name: Copy files
      run: cp -r test/* src/

    - name: Remove files
      run: rm -r test

を足すことで、とりあえず何も変えずに動きます(力技)

@kmyk
Copy link
Member

kmyk commented May 8, 2020

:tensai:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants