用法:set_target_properties(target_name PROPERTIES OUTPUT_NAME "my_executable") 描述:设置生成的可执行文件的名称。 RUNTIME_OUTPUT_DIRECTORY 用法:set_target_properties(target_name PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") 描述:设置运行时文件的输出目录。 LIBRARY_OUTPUT_DIRECTORY ...
PROPERTIES prop1 value1 prop2 value2 ...) 这条指令可以用来设置输出的名称,对于动态库,还可以用来指定动态库版本和 API 版本。 在本例中,需要作的是向lib/CMakeLists.txt 中再添加一条: SET_TARGET_PROPERTIES(hello_static PROPERTIES OUTPUT_NAME "hello") 这样,我们就可以同时得到libhello.so和libhello...
类似地,仅通过一条target_compile_definitions()调用,myLib 和任何链接到 myLib 的对象都将有符号 USE_BARRY 的定义。最后,target_include_directories()命令将 foo 子目录添加到 myLib 和任何链接到它的对象的头搜索路径中。因此,任何其他目录中需要包含 foo.h 的源文件也将能够找到它。 为了说明这些target_xxx...
# 设置动态库的属性 set_target_properties(mylibrary PROPERTIES PUBLIC_HEADER include/mylibrary.h) 1. 2. 代码解释: set_target_properties(mylibrary PROPERTIES PUBLIC_HEADER include/mylibrary.h):设置动态库的属性,将include/mylibrary.h指定为动态库的头文件。 总结 通过以上的步骤,你可以解决Android CMake...
大家在用cmake时,应该经常会用到第三方so库,导入第三方so库中需要使用到set_target_properties,例如这样写: set_target_properties( Thirdlib PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/jniLibs/libThirdlib.so ) CMAKE_CURRENT_SOURCE_DIR 这个变量是系统自定义的,表示CMakeLists.txt文件的绝对路...
在编译工程时,常常有许多宏需要添加到VS中,如果采用adddefinitions的方式进行添加,会使得不同项目的宏混淆,因此,可以采用settarget_properties的方式,根据项目制定对应的宏 set(BUILD_FLAGS "-DHZ_PLATFORM_WINDOWS -DWINDOWS -DHZ_BUILD_DLL" ) set_target_properties(Hazel PROPERTIES COMPILE_FLAGS ${BUILD_FLAGS}...
if(NOT DEFINED QT_DEFAULT_MAJOR_VERSION) set(QT_DEFAULT_MAJOR_VERSION 5) endif() if (NOT TARGET Qt5::qmake) add_executable(Qt5::qmake IMPORTED) set(imported_location "${_qt5Core_install_prefix}/bin/qmake.exe") _qt5_Core_check_file_exists(${imported_location}) set_target_properties(...
set_target_properties(MyExecutable1PROPERTIES COMPILE_DEFINITIONS"DEBUG")set_target_properties(MyExecutable2PROPERTIES COMPILE_DEFINITIONS"RELEASE") 3、高级查找和配置 3.1 查找包的高级用法 find_package() 指令可以用于查找和配置复杂的第三方库和包。
PS:前面使用set_target_properties重新定义了库的输出名称,如果不使用set_target_properties也可以,那么库的名称就是add_library里定义的名称,只是连续2次使用add_library指定库名称时(第一个参数),这个名称不能相同,而set_target_properties可以把名称设置为相同,只是最终生成的库文件后缀不同(一个是.so,一个是.a)...
SET_TARGET_PROPERTIES (hello_shared PROPERTIES CLEAN_DIRECT_OUTPUT 1) # 4、按照规则,动态库是应该包含一个版本号的, # VERSION指代动态库版本,SOVERSION指代API版本。 SET_TARGET_PROPERTIES (hello_static PROPERTIES VERSION 1.1 SOVERSION 1) SET_TARGET_PROPERTIES (hello_shared PROPERTIES VERSION 1.1 SOVERS...