0

そのため、共有ライブラリ、実行可能ファイル、および構成ファイルを作成する一連のプロジェクトがあり、それらをすべて同じディレクトリにまとめたいと考えています。EXECUTABLE_OUTPUT_PATH と LIBRARY_OUTPUT_PATH を使用して、すべてのバイナリを適切な場所に配置できます (ただし、共有ライブラリだけをこのディレクトリに除外できると便利です)。ただし、構成ファイルもこのディレクトリに配置する必要があり、それを実現する方法がわかりません。

構成ファイルを作成するために、以下を使用しています。

foreach(config_file ${${PROJECT_NAME}_CONFIG_FILES})
  ADD_CUSTOM_COMMAND(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${config_file}"
    COMMAND cmake -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/${config_file}"
    "${CMAKE_CURRENT_BINARY_DIR}/${config_file}"
    DEPENDS   "${CMAKE_CURRENT_SOURCE_DIR}/${config_file}"
    )
   list(APPEND ${PROJECT_NAME}_CONFIG_FILES_DEST "${CMAKE_CURRENT_BINARY_DIR}/${config_file}")
endforeach(config_file)

ADD_CUSTOM_TARGET(${PROJECT_NAME}_configuration_files ALL DEPENDS ${${PROJECT_NAME}_CONFIG_FILES_DEST})

独自に作成すると、構成ファイルが正しいプロジェクトディレクトリに配置されますが、バイナリ出力ディレクトリには配置されません。したがって、「EXECUTABLE_OUTPUT_PATH=LIBARY_OUTPUT_PATH=build\bin」を設定すると、ファイル レイアウトが取得されます

+build
-+bin
----A.exe
----B.exe
----*.lib//don't need
----*.dll
-+A
----a.xml
-+B
----b.xml

これは役に立たない。私が欲しいのは「PROJECT_OUTPUT_PATH」なので、EXECUTABLE_OUTPUT_PATHが設定されているかどうかに関係なく、xmlファイルを正しい対応する出力に送信できます。それを取得する方法はありますか?

4

1 に答える 1