-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
137 lines (106 loc) · 3.91 KB
/
CMakeLists.txt
File metadata and controls
137 lines (106 loc) · 3.91 KB
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
cmake_minimum_required(VERSION 3.17 FATAL_ERROR)
if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
message(FATAL_ERROR "In-source builds not allowed.
Please make a new directory (called a build directory) and run CMake from there.
You may need to remove CMakeCache.txt.")
endif()
if(POLICY CMP0144)
cmake_policy(SET CMP0144 OLD)
endif()
if(POLICY CMP0167)
cmake_policy(SET CMP0167 OLD)
endif()
if(POLICY CMP0148)
cmake_policy(SET CMP0148 OLD)
endif()
#---------------------------------------------
# Setting kind of build
#---------------------------------------------
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
project(pgORpy VERSION 0.0.0
)
set(PROJECT_VERSION_DEV "")
string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER)
set(MINORS 0.0)
set(OLD_SIGNATURES
)
set(CMAKE_BUILD_TYPE "Release")
include(Version)
option(PROJECT_DEBUG "Set ON|OFF to get more output" OFF)
#=============================================
# Set the working directories
#=============================================
include(Configure)
#---------------------------------------------
# minimum versions
#---------------------------------------------
set(SPHINX_MINIMUM_VERSION "4.0.0")
set(POSTGRESQL_MINIMUM_VERSION "12.0")
set(PYTHON_VERSION "3.12")
set(ORTOOLS_VERSION "9.10.4067")
string(TIMESTAMP YEAR "%Y")
message(STATUS "ORTOOLS_VERSION=${ORTOOLS_VERSION}")
message(STATUS "DOXYGEN_MINIMUM_VERSION=${DOXYGEN_MINIMUM_VERSION}")
message(STATUS "SPHINX_MINIMUM_VERSION=${SPHINX_MINIMUM_VERSION}")
message(STATUS "POSTGRESQL_MINIMUM_VERSION=${POSTGRESQL_MINIMUM_VERSION}")
#-----------------------------------------------------------------------------
# Finding prerequisites
#-----------------------------------------------------------------------------
find_package(Perl REQUIRED)
find_package(Python ${PYTHON_VERSION} EXACT REQUIRED)
# set Python_ROOT_DIR to define the root directory of a Python installation.
message(STATUS "Python_FOUND=${Python_FOUND}")
message(STATUS "Python_EXECUTABLE=${Python_EXECUTABLE}")
execute_process(
COMMAND ${Python_EXECUTABLE} -c "import ortools; print(ortools.__version__)"
OUTPUT_VARIABLE ORTOOLS_VERSION_FOUND
OUTPUT_STRIP_TRAILING_WHITESPACE
)
message(STATUS "ORTOOLS_VERSION_FOUND=${ORTOOLS_VERSION_FOUND}")
if (NOT "${ORTOOLS_VERSION}" EQUAL "${ORTOOLS_VERSION_FOUND}")
message(WARNING "The python \"ortools\" package version ${ORTOOLS_VERSION} is not installed.")
endif()
#---------------------------------------------
# PostgreSQL
#---------------------------------------------
set(PostgreSQL_ADDITIONAL_VERSIONS "18" "17" "16")
find_package(PostgreSQL ${POSTGRESQL_MINIMUM_VERSION} REQUIRED)
if(POSTGRESQL_BIN)
# Checking POSTGRESQL_PG_CONFIG
find_program(POSTGRESQL_PG_CONFIG NAMES pg_config
PATHS
${POSTGRESQL_BIN}
NO_DEFAULT_PATH
)
else()
find_program(POSTGRESQL_PG_CONFIG NAMES pg_config)
endif()
#---------------------------------------------
# extension directory
#---------------------------------------------
execute_process(
COMMAND ${POSTGRESQL_PG_CONFIG} --sharedir
OUTPUT_STRIP_TRAILING_WHITESPACE
OUTPUT_VARIABLE EXTENSION_DIR)
#-------
if(EXTENSION_DIR)
set(EXTENSION_DIR "${EXTENSION_DIR}/extension")
else(EXTENSION_DIR)
message(FATAL_ERROR "pg_config --sharedir failed to return a value.
Please check your PostgreSQL installation!")
endif(EXTENSION_DIR)
#---------------------------------------------
message(STATUS "EXTENSION_DIR=${EXTENSION_DIR}")
#-----------------------------------------------------------------------------
# Build and install the extension
#-----------------------------------------------------------------------------
add_subdirectory(sql)
install(FILES
${PROJECT_FILES_TO_INSTALL}
DESTINATION "${EXTENSION_DIR}"
)
#-----------------------------------------------------------------------------
# DOCUMENTATION
# Not installing
#-----------------------------------------------------------------------------
add_subdirectory(doc)