]> git.ipfire.org Git - thirdparty/gcc.git/blame - libcody/CMakeLists.txt
Use OEP_DECL_NAME when comparing VLA bounds [PR101585].
[thirdparty/gcc.git] / libcody / CMakeLists.txt
CommitLineData
36230329
NS
1# Top Level CMake file for libcody.
2
3cmake_minimum_required(VERSION 3.4.3)
4
5if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
6 message(STATUS "No build type selected, default to MinSizeRel")
7 set(CMAKE_BUILD_TYPE MinSizeRel)
8 set(LIBCODY_ENABLE_ASSERTIONS 1)
9endif()
10string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
11
12set(cmake_3_2_USES_TERMINAL USES_TERMINAL)
13
14if( CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR AND NOT MSVC_IDE)
15 message(FATAL_ERROR "In-source builds are not allowed. ")
16endif()
17
18# message(STATUS "SRC ${CMAKE_SOURCE_DIR} CSRC : ${CMAKE_CURRENT_SOURCE_DIR} ")
19
20# Add path for custom modules
21set(CMAKE_MODULE_PATH
22 ${CMAKE_MODULE_PATH}
23 "${CMAKE_CURRENT_SOURCE_DIR}/cmake"
24 "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
25
26# If we are building stand-alone, set up the names and versions.
27if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR
28 OR LIBCODY_STANDALONE_BUILD)
29
30 project(libcody CXX)
31
32 set(PACKAGE_NAME codylib)
33 set(LIBCODY_VERSION_MAJOR 0)
34 set(LIBCODY_VERSION_MINOR 0)
35 set(LIBCODY_VERSION_PATCH 1)
36 set(LIBCODY_VERSION_SUFFIX git)
37 set(LIBCODY_VERSION "${LIBCODY_VERSION_MAJOR}.${LIBCODY_VERSION_MINOR}.${LIBCODY_VERSION_PATCH}")
38 set(PACKAGE_VERSION "${LIBCODY_VERSION}-${LIBCODY_VERSION_SUFFIX}")
39 set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
40 set(PACKAGE_URL "https://github.com/urnathan/libcody")
41 set(PACKAGE_BUGREPORT "https://github.com/urnathan/libcody/issues")
42
43 set (GIT_REV "git" "-C" "${CMAKE_CURRENT_SOURCE_DIR}" "rev-parse" "--short=12" "HEAD")
44 execute_process(
45 COMMAND ${GIT_REV}
46 RESULT_VARIABLE HAD_ERROR
47 OUTPUT_VARIABLE CODY_REVISION
48 )
49 if (NOT HAD_ERROR)
50 string(REGEX REPLACE "\n$" "" CODY_REVISION "${CODY_REVISION}")
51 set (GIT_CHANGES "git" "-C" "${CMAKE_CURRENT_SOURCE_DIR}" "diff-index" "--quiet" "HEAD" "--")
52 execute_process(
53 COMMAND ${GIT_CHANGES}
54 RESULT_VARIABLE MOD_ERROR
55 OUTPUT_VARIABLE MOD_OUTPUT
56 )
57 if (MOD_ERROR)
58 set (CODY_REVISION "${CODY_REVISION}-modified")
59 endif ()
60 else()
61 set(CODY_REVISION, "unknown")
62 endif ()
63 set(LIBCODY_STANDALONE YES)
64else()
65 set(LIBCODY_STANDALONE NO)
66endif()
67
68# We are using C++11
69set (CMAKE_CXX_STANDARD 11)
70
71message(STATUS "git revision ${CODY_REVISION} ")
72option(CODY_CHECKING "Enable checking" ON)
73# Address github issue #10
74option(CODY_WITHEXCEPTIONS "Enable exceptions" OFF)
75
76if (LIBCODY_STANDALONE)
77 include(CTest)
78endif()
79
80include(libcody-config-ix)
81
82add_definitions(
83 -DPACKAGE_URL="${PACKAGE_URL}"
84 -DBUGURL="${PACKAGE_BUGREPORT}"
85 -DSRCDIR="${CMAKE_CURRENT_SOURCE_DIR}"
86 -DPACKAGE_NAME="${PACKAGE_NAME}"
87 -DPACKAGE_STRING="${PACKAGE_STRING}"
88 -DPACKAGE_VERSION="${LIBCODY_VERSION}"
89 -DREVISION="${CODY_REVISION}"
90 )
91if (CODY_CHECKING)
92 add_definitions(-DNMS_CHECKING=1)
93else()
94 add_definitions(-DNMS_CHECKING=0)
95endif()
96
97set(LIBCODY_SOURCES
98 buffer.cc
99 client.cc
100 fatal.cc
101 netclient.cc
102 netserver.cc
103 resolver.cc
104 packet.cc
105 server.cc)
106
107if(LIBCODY_STANDALONE)
108 add_library(cody STATIC ${LIBCODY_SOURCES})
109else()
110 message(STATUS "Configured for in-tree build of libcody as LLVMcody")
111 add_llvm_component_library(LLVMcody ${LIBCODY_SOURCES})
112endif()
113
114if (LIBCODY_STANDALONE)
115
116 set_target_properties(cody PROPERTIES PUBLIC_HEADER "cody.hh")
117 install(TARGETS cody
118 LIBRARY DESTINATION lib
119 PUBLIC_HEADER DESTINATION include
120 )
121endif()