You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

52 lines
2.0 KiB

##------------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)
message(STATUS "SRC_FILES_IN_LIB: ${SRC_FILES_IN_LIB}")
add_library(WireRoutingLib SHARED ${SRC_FILES_IN_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})
add_custom_command(
TARGET WireRoutingLib POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_SOURCE_DIR}/build/lib/WireRoutingLib.dylib ${CMAKE_SOURCE_DIR}/lib
)
elseif (WIN32)
target_compile_definitions(WireRoutingLib PUBLIC DMY_LIB_SHARED_BUILD)
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(
WireRoutingLib PUBLIC
${CMAKE_SOURCE_DIR}/lib/include
)