我正在尝试在子项目中组织目标(在本例中为poco),但是我发现无法为ALIAS目标修改属性。我希望外部项目中的目标位于它们自己的文件夹中,而不是扩展到项目树中的所有位置(例如Visual Studio生成器)。有没有更简单的方法来添加具有自己属性的项目?
所以代替:
- CMakePredefinedTargets
- ALL_BUILD
- INSTALL
- ...
- MyTargets
- SomeLibrary
- SomeExe
- CppUnit
- Crypto
- Data
- ...
Run Code Online (Sandbox Code Playgroud)
我想要:
- CMakePredefinedTargets
- ALL_BUILD
- INSTALL
- ...
- MyTargets
- SomeLibrary
- SomeExe
- Poco
- CppUnit
- Crypto
- Data
- ...
Run Code Online (Sandbox Code Playgroud)
我的尝试:
function(add_subdirectory_with_folder folder_name)
function(add_library name type)
_add_library(${ARGV})
set_target_properties(${name}
PROPERTIES
FOLDER "${folder_name}"
)
endfunction()
add_subdirectory(${ARGN})
endfunction()
# External Libs
add_subdirectory_with_folder("Poco" libs/poco)
Run Code Online (Sandbox Code Playgroud)
poco库中的示例目标:
add_library( "${LIBNAME}" ${LIB_MODE} ${SRCS} )
add_library( "${POCO_LIBNAME}" ALIAS "${LIBNAME}") …Run Code Online (Sandbox Code Playgroud)