project(telnet) #----------------------------------------------------------------------------- # We will enforce an out of source build. string(COMPARE EQUAL "${${project_name}_source_dir}" "${${PROJECT_NAME}_BINARY_DIR}" INSOURCE) if(INSOURCE) message(FATAL_ERROR "${PROJECT_NAME} requires an out of source build. Please create a separate binary directory and run CMake there.") endif(INSOURCE) #----------------------------------------------------------------------------- # Don't build anything unless the version of CMake is high enough. cmake_minimum_required(VERSION 2.6) #----------------------------------------------------------------------------- # Get the version info. if(0) find_package(Subversion) if(Subversion_FOUND) Subversion_WC_INFO("${CMAKE_CURRENT_SOURCE_DIR}" ${PROJECT_NAME}) # message(STATUS "${PROJECT_NAME}_WC_REVISION='${${PROJECT_NAME}_WC_REVISION}'") else(Subversion_FOUND) set(${${PROJECT_NAME}_WC_REVISION} 0) endif(Subversion_FOUND) else(0) set(${${PROJECT_NAME}_WC_REVISION} 0) endif(0) #----------------------------------------------------------------------------- # Executable output path, target names etc. set (EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single output directory for building all executables.") set( TARGET_BASE_NAME "${PROJECT_NAME}" ) #set( LIB_NAME "${TARGET_BASE_NAME}Lib" ) set( EXE_NAME "${TARGET_BASE_NAME}" ) # Should match the database major and minor vrsion. set(${PROJECT_NAME}_MAJOR_VERSION 1) set(${PROJECT_NAME}_MINOR_VERSION 0) set(${PROJECT_NAME}_BUILD_VERSION ${${PROJECT_NAME}_WC_REVISION}) set(${PROJECT_NAME}_VERSION "${${PROJECT_NAME}_MAJOR_VERSION}.${${PROJECT_NAME}_MINOR_VERSION}.${${PROJECT_NAME}_BUILD_VERSION}") #----------------------------------------------------------------------------- # Let's use the highest warning level. #----------------------------------------------------------------------------- if(CMAKE_BUILD_TOOL MATCHES "(msdev|devenv|nmake)") # Use the highest warning level for visual studio. if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") else(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") endif(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") if(CMAKE_C_FLAGS MATCHES "/W[0-4]") string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") else(CMAKE_C_FLAGS MATCHES "/W[0-4]") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4") endif(CMAKE_C_FLAGS MATCHES "/W[0-4]") # Disable deprecation warnings for standard C functions in VS2005 and later if(CMAKE_COMPILER_2005) add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE) endif(CMAKE_COMPILER_2005) endif(CMAKE_BUILD_TOOL MATCHES "(msdev|devenv|nmake)") if(CMAKE_BUILD_TOOL MATCHES "make") if(NOT CMAKE_CXX_FLAGS MATCHES "-Wall") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") endif(NOT CMAKE_CXX_FLAGS MATCHES "-Wall") if(NOT CMAKE_C_FLAGS MATCHES "-Wall") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") endif(NOT CMAKE_C_FLAGS MATCHES "-Wall") endif(CMAKE_BUILD_TOOL MATCHES "make") #----------------------------------------------------------------------------- # Boost # For automatic linking, uses the static version of the libraries. if(WIN32) set(Boost_USE_STATIC_LIBS ON) endif(WIN32) find_package(Boost REQUIRED COMPONENTS system thread ) if ( Boost_FOUND ) include_directories(${Boost_INCLUDE_DIRS}) link_directories(${Boost_LIBRARY_DIRS}) add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS}) # Remember to include ${Boost_LIBRARIES} in the target_link_libraries() statement endif ( Boost_FOUND ) # Source files set( Srcs telnet.cpp ) # Include files set( Incs ) #----------------------------------------------------------------------------- # Paths to include directories. include_directories ( ) add_executable( ${EXE_NAME} ${Srcs} ${Incs} ) target_link_libraries( ${EXE_NAME} ) if ( WIN32 ) if (STATIC_BUILD) target_link_libraries ( ${EXE_NAME} ) else (STATIC_BUILD) target_link_libraries ( ${EXE_NAME} ) endif(STATIC_BUILD) else ( WIN32 ) target_link_libraries ( ${EXE_NAME} boost_system boost_thread ) endif ( WIN32 ) install(TARGETS ${EXE_NAME} RUNTIME DESTINATION bin # LIBRARY DESTINATION lib # ARCHIVE DESTINATION lib )