-
Notifications
You must be signed in to change notification settings - Fork 3
/
CMakeLists.txt
99 lines (88 loc) · 3.31 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
cmake_minimum_required(VERSION 2.6)
if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
message(SEND_ERROR "You have to create an out-of-source build")
message(SEND_ERROR "Create a sub-folder and execute cmake there")
message(FATAL_ERROR "The file CmakeCache.txt and directory CMakeFiles in the root directory have to be deleted manually now")
endif()
project(gringo)
# user configurables
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type: Release Debug")
if(NOT $ENV{WITH_LUA} STREQUAL "")
SET(WITH_LUA $ENV{WITH_LUA})
endif()
set(WITH_LUA "${WITH_LUA}" CACHE STRING "Enable LUA support (none, system, shipped)")
if(NOT $ENV{WITH_LUASQL} STREQUAL "")
SET(WITH_LUASQL TRUE)
endif()
SET(WITH_LUASQL "${WITH_LUASQL}" CACHE BOOL "Enable luasql support")
if(NOT $ENV{WITH_DOC} STREQUAL "")
SET(WITH_DOC TRUE)
endif()
set(WITH_DOC "${WITH_DOC}" CACHE BOOL "Generate documentation")
set(USE_STATIC_LIBS "${USE_STATIC_LIBS}" CACHE BOOL "Link statically")
if(NOT $ENV{WITH_CLINGCON} STREQUAL "")
SET(WITH_CLINGCON TRUE)
endif()
set(WITH_CLINGCON "${WITH_CLINGCON}" CACHE BOOL "Enable clingcon support")
include(cmake/re2c.cmake)
include(cmake/lemon.cmake)
include(cmake/PCHSupport.cmake)
include(CheckCXXCompilerFlag)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake CACHE INTERNAL "" FORCE)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "" FORCE)
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE)
IF(USE_STATIC_LIBS)
set(CMAKE_EXE_LINK_DYNAMIC_C_FLAGS)
set(CMAKE_EXE_LINK_DYNAMIC_CXX_FLAGS)
set(CMAKE_SHARED_LIBRARY_C_FLAGS)
set(CMAKE_SHARED_LIBRARY_CXX_FLAGS)
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS)
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS)
set(Boost_USE_STATIC_LIBS TRUE)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a)
ENDIF()
CHECK_CXX_COMPILER_FLAG("-Wno-ignored-qualifiers" HAS_WARN_NO_IGNORED_QUALIFIERS)
CHECK_CXX_COMPILER_FLAG("-Wno-unused-parameter" HAS_WARN_NO_UNUSED_PARAMETER)
CHECK_CXX_COMPILER_FLAG("-Wno-unused-variable" HAS_WARN_NO_UNUSED_VARIABLE)
if(HAS_WARN_NO_IGNORED_QUALIFIERS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-ignored-qualifiers")
endif()
if(HAS_WARN_NO_UNUSED_PARAMETER)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter")
endif()
if(HAS_WARN_NO_UNUSED_VARIABLE)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-variable")
endif()
set(Boost_USE_MULTITHREADED OFF CACHE STRING "Whether to Use multi-threaded boost libraries")
find_package(Boost REQUIRED filesystem system)
include_directories(${Boost_INCLUDE_DIRS})
if(WITH_CLINGCON)
FIND_PACKAGE(GECODE REQUIRED)
INCLUDE_DIRECTORIES(${GECODE_INCLUDE})
endif()
if(WITH_LUA STREQUAL "system")
find_package(LUA51 REQUIRED)
add_definitions("-DWITH_LUA=1")
include_directories(${LUA_INCLUDE_DIR})
elseif(WITH_LUA STREQUAL "shipped")
add_definitions("-DWITH_LUA=2")
include_directories(liblua)
add_subdirectory(liblua)
if(WITH_LUASQL)
add_definitions("-DWITH_LUASQL")
include_directories(${CMAKE_SOURCE_DIR}/libluasql ${CMAKE_BINARY_DIR}/libluasql)
add_subdirectory(libluasql)
endif()
endif()
add_subdirectory(libclasp)
add_subdirectory(libgringo)
if(WITH_CLINGCON)
add_subdirectory(libclingcon)
endif()
add_subdirectory(libprogram_opts)
add_subdirectory(app)
if(WITH_DOC)
include(cmake/UseLATEX.cmake)
add_subdirectory(doc/guide)
endif()