-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathCMakeLists.txt
148 lines (127 loc) · 4.66 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
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
138
139
140
141
142
143
144
145
146
147
148
# -- cmake setup info
cmake_minimum_required(VERSION 2.8)
# Meqtrees CMake Build File
project(meqtrees CXX C)
IF(DEFINED CMAKE_BUILD_TYPE)
IF((CMAKE_BUILD_TYPE STREQUAL "Debug") OR (CMAKE_BUILD_TYPE STREQUAL "Release") OR (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") OR (CMAKE_BUILD_TYPE STREQUAL "MinSizeRel"))
MESSAGE("-- Build type is defined as '${CMAKE_BUILD_TYPE}'")
ELSE()
SET(CMAKE_BUILD_TYPE "Release")
MESSAGE("-- Invalid option for BUILD TYPE, defaulted to '${CMAKE_BUILD_TYPE}' build")
ENDIF()
ELSE()
SET(CMAKE_BUILD_TYPE "Release")
MESSAGE("-- Build type wasn't defined, defaulted to '${CMAKE_BUILD_TYPE}' build")
ENDIF()
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
MESSAGE(WARNING "You are compiling the backend in debugging mode... things may be slower than usual. Overriding all optimizations to 'OFF'")
ENDIF()
# CUDA
find_package(CUDA 4.0)
set(CUDA_FOUND false)
if (CUDA_FOUND)
message(" * CUDA ${CUDA_VERSION} was found")
add_library( cudart STATIC IMPORTED )
add_library( cutil64D STATIC IMPORTED )
set(CUDA_NVCC_FLAGS -arch=sm_13 --ptxas-options -v)
else(CUDA_FOUND)
message(" * CUDA not found -- CUDA support disabled. This support is still only experimental, do not be alarmed.")
set (CUDA_TOOLKIT_INCLUDE "")
add_definitions(-DSTRIP_CUDA)
endif(CUDA_FOUND)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake)
include(cmake/meqmacros.cmake)
include(cmake/mequtils.cmake)
option(ENABLE_PYTHON_3 "Enables support for Python 3.x" ON)
if ("${ENABLE_PYTHON_3}")
message("-- Compiling backend against Python 3.x")
set(PYREQ_VER 3.0)
set(PYABI .cpython-30)
find_package(PythonInterp ${PYREQ_VER} REQUIRED)
find_package(PythonLibs ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} EXACT REQUIRED)
else("${ENABLE_PYTHON_3}")
message(FATAL_ERROR "Python 2.7 building no longer supported")
endif("${ENABLE_PYTHON_3}")
include (FindPythonInterp)
include (FindPythonLibs)
include(cmake/SetPythonPackagesDir.cmake)
# had to add this to get working on Ubuntu 11.10 g{cc/++}4.6 since the include directory structure seems to have changed
#include_directories(/usr/include/i386-linux-gnu/)
# options and defaults
set( BUILD_SHARED_LIBS TRUE )
if(NOT LIBRARY_INSTALL_DIR )
set( LIBRARY_INSTALL_DIR lib )
endif(NOT LIBRARY_INSTALL_DIR )
if(NOT MEQTREES_INSTALL_DIR )
set( MEQTREES_INSTALL_DIR "${LIBRARY_INSTALL_DIR}/meqtrees" )
endif(NOT MEQTREES_INSTALL_DIR )
if(NOT PYTHON_INSTALL_DIR )
set( PYTHON_INSTALL_DIR "${PYTHON_PACKAGES_DIR}/Timba" )
endif(NOT PYTHON_INSTALL_DIR )
if(NOT INCLUDE_INSTALL_DIR )
set( INCLUDE_INSTALL_DIR "include/meqtrees" )
endif(NOT INCLUDE_INSTALL_DIR )
if(NOT ICON_INSTALL_DIR )
set( ICON_INSTALL_DIR "${PYTHON_INSTALL_DIR}/icons" )
endif(NOT ICON_INSTALL_DIR )
# project version
set( ${PROJECT_NAME}_MAJOR_VERSION 2 )
set( ${PROJECT_NAME}_MINOR_VERSION 0 )
set( ${PROJECT_NAME}_PATCH_LEVEL 0 )
# -- dependencies
set(dependencies
Blitz
PythonLibs
CasaCore
DBM
WcsLib
FFTW3
CfitsIO
Threads
PythonNumpy
)
# alternative builds
if(USE_MPI)
list(APPEND dependencies MPI)
endif(USE_MPI)
PACKAGE_DEPENDENCIES( ${dependencies} )
if(DBM_FLAGS)
add_definitions(${DBM_FLAGS})
endif(DBM_FLAGS)
if(CASACORE_FOUND)
add_definitions(-DHAVE_AIPSPP)
message("-- Casacore include directories found in ${CASACORE_INCLUDE_DIR}")
message("-- Casacore libraries found in ${CASACORE_LIBRARIES}")
include_directories(${CASACORE_INCLUDE_DIR})
endif(CASACORE_FOUND)
find_package(Casarest REQUIRED COMPONENTS synthesis)
if(CASAREST_FOUND)
message("-- Casarest include directories found in ${CASAREST_INCLUDE_DIR}")
message("-- Casarest libraries found in ${CASAREST_LIBRARIES}")
include_directories(${CASAREST_INCLUDE_DIR})
endif(CASAREST_FOUND)
# -- compiler defaults
add_definitions(-DUSE_STD_COMPLEX -DMAKE_LOFAR_SYMBOLS_GLOBAL -DUSE_THREADS -fPIC)
SET(CPP_PLATFORM_LIBS ${CMAKE_THREAD_LIBS_INIT})
if(CMAKE_COMPILER_IS_GNUCC)
add_definitions(-Wno-deprecated -D_GNU_SOURCE -Wno-unknown-pragmas -std=c++17 -Wfatal-errors)
list(APPEND CPP_PLATFORM_LIBS util dl)
endif(CMAKE_COMPILER_IS_GNUCC)
IF(APPLE)
add_definitions(-DDARWIN)
ENDIF(APPLE)
# -- sub modules
add_subdirectory(TimBase)
add_subdirectory(DMI)
add_subdirectory(OCTOPUSSY)
add_subdirectory(OCTOPython)
add_subdirectory(MEQ)
add_subdirectory(VisCube)
add_subdirectory(MeqMPI)
add_subdirectory(MeqNodes)
add_subdirectory(AppAgent)
add_subdirectory(MeqServer)
add_subdirectory(PyApps)
#add_subdirectory(PyParmDB)
#add_subdirectory(Tests)