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