cmake_minimum_required(VERSION 2.6) project(RakNetLibStatic) FILE(GLOB ALL_HEADER_SRCS ${RakNet_SOURCE_DIR}/Source/*.h) FILE(GLOB ALL_CPP_SRCS ${RakNet_SOURCE_DIR}/Source/*.cpp) # 库文件的输出目录 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/Lib) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/Lib) include_directories( ${RAKNET_INTERNAL_INCLUDE_DIRS} ) add_library(RakNetLibStatic STATIC ${ALL_CPP_SRCS} ${ALL_HEADER_SRCS} readme.txt) IF(WIN32 AND NOT UNIX) SET( CMAKE_CXX_FLAGS "/D WIN32 /D _RAKNET_LIB /D _CRT_NONSTDC_NO_DEPRECATE /D _CRT_SECURE_NO_DEPRECATE /GS- /GR- ") ENDIF(WIN32 AND NOT UNIX) IF(WIN32 AND NOT UNIX) target_link_libraries (RakNetLibStatic ${RAKNET_LIBRARY_LIBS}) IF(NOT ${CMAKE_GENERATOR} STREQUAL "MSYS Makefiles") IF( MSVC10 OR MSVC11 OR MSVC12 OR MSVC13 OR MSVC14 ) set_target_properties(RakNetLibStatic PROPERTIES STATIC_LIBRARY_FLAGS "/NODEFAULTLIB:\"LIBCD.lib LIBCMTD.lib MSVCRT.lib\"" ) ELSE() set_target_properties(RakNetLibStatic PROPERTIES STATIC_LIBRARY_FLAGS "/NODEFAULTLIB:"LIBCD.lib LIBCMTD.lib MSVCRT.lib"" ) ENDIF() ENDIF(NOT ${CMAKE_GENERATOR} STREQUAL "MSYS Makefiles") ELSE(WIN32 AND NOT UNIX) target_link_libraries (RakNetLibStatic ${RAKNET_LIBRARY_LIBS}) INSTALL(TARGETS RakNetLibStatic DESTINATION ${RakNet_SOURCE_DIR}/Lib/RakNetLibStatic) INSTALL(FILES ${ALL_HEADER_SRCS} DESTINATION ${RakNet_SOURCE_DIR}/include/raknet) ENDIF(WIN32 AND NOT UNIX)