私はCMakeが初めてで、解決策がわからないという問題があります。CMake を使用して、一連のオプションのサブディレクトリを含むプロジェクトをコンパイルしています。共有ライブラリ ファイルが期待どおりにビルドされます。その部分はうまく機能しているようです。これらの各サブディレクトリには、sql ファイルが含まれています。選択したすべての SQL ファイルを 1 つの SQL ヘッダー ファイルに連結し、結果をインストールする必要があります。したがって、次のような1つのファイル:
sql_header.sql
sub_dir_A.sql
sub_dir_C.sql
sub_dir_D.sql
これをmakeファイルで直接行った場合、選択したサブディレクトリのみを処理するために、次のようなことをよりスマートに行うことができます。
cat sql_header.sql > "${INSTALL_PATH}/somefile.sql"
cat sub_dir_A.sql >> "${INSTALL_PATH}/somefile.sql"
cat sub_dir_C.sql >> "${INSTALL_PATH}/somefile.sql"
cat sub_dir_D.sql >> "${INSTALL_PATH}/somefile.sql"
私が使用できるように、私はこれの一部を理解しました:
LIST(APPEND PACKAGE_SQL_FILES "some_file.sql")
ファイル名を収集するために、各サブディレクトリ CMakeLists.txt ファイルに配置できると思います。そして、次のようなマクロを作成できます。
CAT(IN "${PACKAGE_SQL_FILES}" OUT "${INSTALL_PATH}/somefile.sql")
しかし、CMake が最初に実行されるときと、make install から実行されるときの間で迷ってしまいます。たぶん、これを行うためのより良い方法があります。これは、Windows と Linux の両方で動作する必要があります。
正しい方向に向けるためのヒントがあれば幸いです。