123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- # Top Level CMake file for libcody.
- cmake_minimum_required(VERSION 3.4.3)
- if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
- message(STATUS "No build type selected, default to MinSizeRel")
- set(CMAKE_BUILD_TYPE MinSizeRel)
- set(LIBCODY_ENABLE_ASSERTIONS 1)
- endif()
- string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
- set(cmake_3_2_USES_TERMINAL USES_TERMINAL)
- if( CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR AND NOT MSVC_IDE)
- message(FATAL_ERROR "In-source builds are not allowed. ")
- endif()
- # message(STATUS "SRC ${CMAKE_SOURCE_DIR} CSRC : ${CMAKE_CURRENT_SOURCE_DIR} ")
- # Add path for custom modules
- set(CMAKE_MODULE_PATH
- ${CMAKE_MODULE_PATH}
- "${CMAKE_CURRENT_SOURCE_DIR}/cmake"
- "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
- # If we are building stand-alone, set up the names and versions.
- if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR
- OR LIBCODY_STANDALONE_BUILD)
- project(libcody CXX)
- set(PACKAGE_NAME codylib)
- set(LIBCODY_VERSION_MAJOR 0)
- set(LIBCODY_VERSION_MINOR 0)
- set(LIBCODY_VERSION_PATCH 1)
- set(LIBCODY_VERSION_SUFFIX git)
- set(LIBCODY_VERSION "${LIBCODY_VERSION_MAJOR}.${LIBCODY_VERSION_MINOR}.${LIBCODY_VERSION_PATCH}")
- set(PACKAGE_VERSION "${LIBCODY_VERSION}-${LIBCODY_VERSION_SUFFIX}")
- set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
- set(PACKAGE_URL "https://github.com/urnathan/libcody")
- set(PACKAGE_BUGREPORT "https://github.com/urnathan/libcody/issues")
- set (GIT_REV "git" "-C" "${CMAKE_CURRENT_SOURCE_DIR}" "rev-parse" "--short=12" "HEAD")
- execute_process(
- COMMAND ${GIT_REV}
- RESULT_VARIABLE HAD_ERROR
- OUTPUT_VARIABLE CODY_REVISION
- )
- if (NOT HAD_ERROR)
- string(REGEX REPLACE "\n$" "" CODY_REVISION "${CODY_REVISION}")
- set (GIT_CHANGES "git" "-C" "${CMAKE_CURRENT_SOURCE_DIR}" "diff-index" "--quiet" "HEAD" "--")
- execute_process(
- COMMAND ${GIT_CHANGES}
- RESULT_VARIABLE MOD_ERROR
- OUTPUT_VARIABLE MOD_OUTPUT
- )
- if (MOD_ERROR)
- set (CODY_REVISION "${CODY_REVISION}-modified")
- endif ()
- else()
- set(CODY_REVISION, "unknown")
- endif ()
- set(LIBCODY_STANDALONE YES)
- else()
- set(LIBCODY_STANDALONE NO)
- endif()
- # We are using C++11
- set (CMAKE_CXX_STANDARD 11)
- message(STATUS "git revision ${CODY_REVISION} ")
- option(CODY_CHECKING "Enable checking" ON)
- # Address github issue #10
- option(CODY_WITHEXCEPTIONS "Enable exceptions" OFF)
- if (LIBCODY_STANDALONE)
- include(CTest)
- endif()
- include(libcody-config-ix)
- add_definitions(
- -DPACKAGE_URL="${PACKAGE_URL}"
- -DBUGURL="${PACKAGE_BUGREPORT}"
- -DSRCDIR="${CMAKE_CURRENT_SOURCE_DIR}"
- -DPACKAGE_NAME="${PACKAGE_NAME}"
- -DPACKAGE_STRING="${PACKAGE_STRING}"
- -DPACKAGE_VERSION="${LIBCODY_VERSION}"
- -DREVISION="${CODY_REVISION}"
- )
- if (CODY_CHECKING)
- add_definitions(-DNMS_CHECKING=1)
- else()
- add_definitions(-DNMS_CHECKING=0)
- endif()
- set(LIBCODY_SOURCES
- buffer.cc
- client.cc
- fatal.cc
- netclient.cc
- netserver.cc
- resolver.cc
- packet.cc
- server.cc)
- if(LIBCODY_STANDALONE)
- add_library(cody STATIC ${LIBCODY_SOURCES})
- else()
- message(STATUS "Configured for in-tree build of libcody as LLVMcody")
- add_llvm_component_library(LLVMcody ${LIBCODY_SOURCES})
- endif()
- if (LIBCODY_STANDALONE)
- set_target_properties(cody PROPERTIES PUBLIC_HEADER "cody.hh")
- install(TARGETS cody
- LIBRARY DESTINATION lib
- PUBLIC_HEADER DESTINATION include
- )
- endif()
|