include_directories(${CMAKE_CURRENT_SOURCE_DIR})
AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} source)
project(abc)
#a_certain_source_file.cpp is a generated file built by another project.
add_library(${PROJECT_NAME} STATIC ${source} ${xyz_BIN_DIR}/a_certain_source_file.cpp)
add_dependencies(${PROJECT_NAME} xyz)
target_link_libraries(${PROJECT_NAME} PRIVATE xyz)
# include xyz_SOURCE_DIR directory to include a_certain_source_file.cpp
target_include_directories(${PROJECT_NAME} PRIVATE ${xyz_SOURCE_DIR})
# Installation
install(TARGETS ${PROJECT_NAME} DESTINATION ${DST_LIB_DIR})
我有一个如上所述的 CMakeLists.txt。正在尝试构建项目 abc。但要构建它,我还需要“a_certain_source_file.cpp”,它是来自另一个名为 xyz 的项目的自动生成的源文件。如果 xyz 是从同一个 CMakeLists.txt 构建的,那么 add_dependencies 工作不会有问题。我无法通过我现在拥有 CMakeLists.txt 的方式解决对“a_certain_source_file.cpp”的依赖。任何可以提供帮助的 CMake 爱好者或专家?
我在这里也看到了一个密切的匹配 - cmake: add_dependencies 不适用于外部项目,但我不需要下载任何东西。所以不确定这是否是我需要的。