別のターゲットに対してリンクされるいくつかのライブラリを定義するために、ターゲットの実行から生成されたファイルの内容を使用しようとしています。
これは次のようになります。
add_executable(generator zoot.cpp)
get_property(GEN_LOCATION TARGET generator PROPERTY LOCATION)
add_custom_command(OUTPUT libInfo.txt
COMMAND ${GEN_LOCATION}
DEPENDS someOtherFile.txt)
add_custom_target(lib_info_generator ALL
DEPENDS libInfo.txt someOtherFile.txt)
add_dependencies(lib_info_generator generator)
add_executable(final_target hi.cpp)
file(STRINGS "libInfo.txt" MY_LIB)
if(MY_LIB STREQUAL "lib1")
target_link_libraries(final_target lib1)
else()
target_link_libraries(final_target lib2)
endif()
ターゲット lib_info_generator が実行されるまで libInfo.txt が存在しないため、これは機能しません。
これを CMake で実装する方法はありますか?