5 changed files with 50 additions and 19 deletions
@ -1,23 +1,52 @@ |
|||||
|
##------------REQUIRED_4 指定C++标准------------# |
||||
|
## !!!不要在库中使用此方式!!!,使用set_target_properties/set_property来针对目标设置标准 |
||||
|
## 设置缓存变量: 设置了 C++ 标准的级别为 17(STRING) ,保存在CMakeCache.txt文件中,此处“”内容会写入为注释 |
||||
|
#set(CMAKE_CXX_STANDARD 17 CACHE STRING "The C++ standard to use") |
||||
|
## 告诉 CMake 使用上述设置 |
||||
|
#set(CMAKE_CXX_STANDARD_REQUIRED ON) |
||||
|
## 关闭了拓展,来明确自己使用了 -std=c++11 还是 -std=g++11 |
||||
|
#set(CMAKE_CXX_EXTENSIONS OFF) |
||||
|
|
||||
|
#set_target_properties() |
||||
|
|
||||
aux_source_directory(${CMAKE_SOURCE_DIR}/lib/src SRC_FILES_IN_LIB) |
aux_source_directory(${CMAKE_SOURCE_DIR}/lib/src SRC_FILES_IN_LIB) |
||||
message(STATUS "SRC_FILES_IN_LIB: ${SRC_FILES_IN_LIB}") |
message(STATUS "SRC_FILES_IN_LIB: ${SRC_FILES_IN_LIB}") |
||||
|
|
||||
add_library(WireRouting SHARED ${SRC_FILES_IN_LIB}) |
add_library(WireRoutingLib SHARED ${SRC_FILES_IN_LIB}) |
||||
target_compile_definitions(WireRouting PUBLIC DMY_LIB_SHARED_BUILD) |
|
||||
target_compile_definitions(WireRouting PRIVATE WIREROUTINGDLL_EXPORTS) |
|
||||
|
|
||||
INSTALL(TARGETS WireRouting DESTINATION ${CMAKE_SOURCE_DIR}/lib) |
if (APPLE) |
||||
|
set_target_properties( |
||||
|
WireRoutingLib PROPERTIES |
||||
|
OUTPUT_NAME "WireRoutingLib" |
||||
|
PREFIX "" |
||||
|
CXX_STANDARD 17 |
||||
|
CXX_STANDARD_REQUIRED ON |
||||
|
CXX_EXTENSIONS OFF |
||||
|
) |
||||
|
get_target_property(CXX_STD_VER WireRoutingLib CXX_STANDARD) |
||||
|
message(STATUS "C++ version using: " ${CXX_STD_VER}) |
||||
|
|
||||
SET_TARGET_PROPERTIES( |
add_custom_command( |
||||
WireRouting PROPERTIES |
TARGET WireRoutingLib POST_BUILD |
||||
LINKER_LANGUAGE C |
COMMAND ${CMAKE_COMMAND} -E copy |
||||
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib |
${CMAKE_SOURCE_DIR}/build/lib/WireRoutingLib.dylib ${CMAKE_SOURCE_DIR}/lib |
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build |
) |
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib |
elseif (WIN32) |
||||
OUTPUT_NAME "WireRouting" |
target_compile_definitions(WireRoutingLib PUBLIC DMY_LIB_SHARED_BUILD) |
||||
PREFIX "" |
target_compile_definitions(WireRoutingLib PRIVATE WireRoutingLibDLL_EXPORTS) |
||||
) |
INSTALL(TARGETS WireRoutingLib DESTINATION ${CMAKE_SOURCE_DIR}/lib) |
||||
|
SET_TARGET_PROPERTIES( |
||||
|
WireRoutingLib PROPERTIES |
||||
|
LINKER_LANGUAGE C |
||||
|
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib |
||||
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build |
||||
|
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib |
||||
|
OUTPUT_NAME "WireRoutingLib" |
||||
|
PREFIX "" |
||||
|
) |
||||
|
endif() |
||||
|
|
||||
target_include_directories( |
target_include_directories( |
||||
WireRouting PUBLIC |
WireRoutingLib PUBLIC |
||||
${CMAKE_SOURCE_DIR}/lib/include |
${CMAKE_SOURCE_DIR}/lib/include |
||||
) |
) |
||||
|
Binary file not shown.
Loading…
Reference in new issue