-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
109 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
99
100
101
102
103
104
105
106
107
108
109
# Yuri Pirola. Copyright (C) 2010. GPLv3.
#
# Project Properties
#
cmake_minimum_required (VERSION 2.8)
project (reHCstar)
set (APPLICATION_NAME "Haplotyping with Recombinations, Errors, and Missing Genotypes")
set (APPLICATION_CODENAME "${PROJECT_NAME}")
set (APPLICATION_COPYRIGHT_YEARS "2010, 2011")
set (APPLICATION_VENDOR_ID "org.tecnoparco")
set (APPLICATION_VENDOR_NAME "Parco Tecnologico Padano")
set (APPLICATION_VENDOR_URL "www.tecnoparco.org")
set (APPLICATION_ID "${APPLICATION_VENDOR_ID}.${PROJECT_NAME}")
include(CMakeOptions.txt)
#
# Debugging Options
#
set (CMAKE_VERBOSE_MAKEFILE 0) # Use 1 for debugging, 0 for release
#
# Project Output Paths
#
set (MAINFOLDER ${PROJECT_SOURCE_DIR})
set (EXECUTABLE_OUTPUT_PATH "${MAINFOLDER}/bin")
set (LIBRARY_OUTPUT_PATH "${MAINFOLDER}/lib")
set (project_base_LIB ${PROJECT_NAME}-lib)
#
# Project Search Paths
#
list (APPEND CMAKE_PREFIX_PATH "${MAINFOLDER}")
list (APPEND CMAKE_PREFIX_PATH "${MAINFOLDER}/tools")
list (APPEND CMAKE_PREFIX_PATH "${MAINFOLDER}/thirdparty")
set (CMAKE_MODULE_PATH "${MAINFOLDER}/tools/share/cmake")
include_directories("${MAINFOLDER}/include")
#
# Locate Project Prerequisites
#
set (Boost_ADDITIONAL_VERSIONS "1.42" "1.42.0")
find_package (Boost COMPONENTS "filesystem" "system" "date_time" "program_options" "iostreams" REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})
set (CMAKE_CXX_FLAGS "-std=c++0x -Wall ${CMAKE_CXX_FLAGS}")
set (CMAKE_CXX_FLAGS_DEBUG "-O0 ${CMAKE_CXX_FLAGS_DEBUG}")
set (CMAKE_CXX_FLAGS_RELEASE "-march=native -fomit-frame-pointer ${CMAKE_CXX_FLAGS_RELEASE}")
include(ExtractSourceVersionFromGit)
set (APPLICATION_VERSION_STRING "${APPLICATION_SOURCE_VERSION}") # See the version from the 'git' repositories
#
# Configure Files
#
file (GLOB_RECURSE CONFIGINPUTS include/*.h.in.cmake)
foreach (CONFIGINPUT ${CONFIGINPUTS})
string (REPLACE ".h.in.cmake" ".h" CONFIGOUTPUT "${CONFIGINPUT}")
configure_file ("${CONFIGINPUT}" "${CONFIGOUTPUT}")
endforeach (CONFIGINPUT ${CONFIGINPUTS})
if (INTEGRATE_SAT_SOLVER)
message(STATUS "SAT solver integrated.")
remove_definitions(-DNO_INTERNAL_SAT_SOLVER)
add_definitions(-DINTERNAL_SAT_SOLVER)
if (DISABLE_EXTERNAL_SAT_SOLVERS)
message(STATUS "External SAT solvers *CANNOT* be used.")
add_definitions(-DONLY_INTERNAL_SAT_SOLVER)
else()
message(STATUS "External SAT solvers can still be used.")
remove_definitions(-DONLY_INTERNAL_SAT_SOLVER)
endif()
add_subdirectory(solver)
include_directories("solver/${sat_INCLUDE}")
add_definitions(-DSAT_SOLVER=${SAT_SOLVER})
foreach(DEFINITION ${sat_DEFINITIONS})
add_definitions(-D${DEFINITION})
endforeach()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${sat_FLAGS}")
else()
message(STATUS "SAT solver *NOT* integrated.")
set(DISABLE_EXTERNAL_SAT_SOLVERS "OFF")
add_definitions(-DNO_INTERNAL_SAT_SOLVER)
remove_definitions(-DINTERNAL_SAT_SOLVER)
remove_definitions(-DONLY_INTERNAL_SAT_SOLVER)
endif()
#
# Add Build Targets
#
add_subdirectory(src)
#
# Add Install Targets
#
if (EXISTS "${MAINFOLDER}/include/${PROJECT_NAME}" AND IS_DIRECTORY "${MAINFOLDER}/include/${PROJECT_NAME}")
install(DIRECTORY "${MAINFOLDER}/include/${PROJECT_NAME}" DESTINATION "include")
endif (EXISTS "${MAINFOLDER}/include/${PROJECT_NAME}" AND IS_DIRECTORY "${MAINFOLDER}/include/${PROJECT_NAME}")