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()