diff options
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..a737ba0 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,76 @@ +cmake_minimum_required(VERSION 2.8 FATAL_ERROR) +project(clsocket) + +# set up versioning. +set(BUILD_MAJOR "1") +set(BUILD_MINOR "4") +set(BUILD_VERSION "3") + +include_directories(src) + +SET(CLSOCKET_HEADERS +src/ActiveSocket.h +src/Host.h +src/PassiveSocket.h +src/SimpleSocket.h +src/StatTimer.h +) + +SET(CLSOCKET_SOURCES +src/SimpleSocket.cpp +src/ActiveSocket.cpp +src/PassiveSocket.cpp +) + +# mark headers as headers... +SET_SOURCE_FILES_PROPERTIES( ${CLSOCKET_HEADERS} PROPERTIES HEADER_FILE_ONLY TRUE ) +# append to sources so that dependency checks work on headers +LIST(APPEND CLSOCKET_SOURCES ${CLSOCKET_HEADERS}) + +# OS and compiler checks. +if(UNIX) + if(CYGWIN) + # Special Cygwin stuff here + elseif(APPLE) + # Special Apple stuff here + endif() + # linux / normal unix + add_definitions(-D_LINUX) +elseif(WIN32) + add_definitions(-DWIN32) + SET(PROJECT_LIBS Ws2_32.lib) + if(MINGW) + # Special MINGW stuff here + elseif(MSVC) + # Special MSVC stuff here + else() + # No idea what it is, but there's a good chance it's too weird. + MESSAGE( FATAL_ERROR "Using unknown WIN32 compiler... NOT. Please add to build system." ) + endif() +endif() + +OPTION(CLSOCKET_SHARED "Build clsocket lib as shared." ON) + +# make the lib +if(CLSOCKET_SHARED) + ADD_LIBRARY(clsocket SHARED ${CLSOCKET_SOURCES}) +else() + ADD_LIBRARY(clsocket STATIC ${CLSOCKET_SOURCES}) +endif() + +TARGET_LINK_LIBRARIES(clsocket ${PROJECT_LIBS}) + +# install into configured prefix +install(TARGETS clsocket ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) +install(FILES ${CLSOCKET_HEADERS} DESTINATION include) + +if(UNIX) + OPTION(CLSOCKET_EXAMPLES "Build the examples" OFF) + + if(CLSOCKET_EXAMPLES) + ADD_EXECUTABLE(clsocket-example examples/RecvAsync.cpp) + TARGET_LINK_LIBRARIES(clsocket-example clsocket pthread) + install(TARGETS clsocket-example DESTINATION bin) + endif() +endif() + |
