-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
88 lines (69 loc) · 2.33 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
cmake_minimum_required(VERSION 3.2)
project(geoda_test)
###########################################################
#
# env variables
#
###########################################################
message(STATUS "Binary dir: ${CMAKE_BINARY_DIR}")
set( CMAKE_VERBOSE_MAKEFILE on )
set (DEP_LIBRARY_PATH ${CMAKE_SOURCE_DIR})
set (DEP_OS_SUB "")
if ( APPLE )
set(CMAKE_MACOSX_RPATH 1)
set (DEP_OS_SUB "osx")
# on macOS "uname -m" returns the architecture (x86_64 or arm64)
execute_process(
COMMAND uname -m
RESULT_VARIABLE result
OUTPUT_VARIABLE OSX_NATIVE_ARCHITECTURE
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# determine if we do universal build or native build
if(OSX_NATIVE_ARCHITECTURE STREQUAL "arm64") # when running on arm64
set (CMAKE_OSX_ARCHITECTURES "arm64")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch arm64")
message(STATUS "macOS arm64 build")
else()
set (CMAKE_OSX_ARCHITECTURES "x86_64")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch x86_64")
message(STATUS "macOS x86_64 build")
endif()
elseif (UNIX)
set (DEP_OS_SUB "linux")
set (CMAKE_CXX_FLAGS "-fPIC -Wl,--no-as-needed")
elseif (MINGW)
# i386 or x64
set (DEP_OS_SUB "i386")
elseif (MSVC)
# win32 or win64
set (DEP_OS_SUB "win32")
# if win64:
#set(CMAKE_GENERATOR_PLATFORM x64)
endif()
message(STATUS "DEP_OS_SUB: ${DEP_OS_SUB}")
# This little macro lets you set any XCode specific property
macro (set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE)
set_property (TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} ${XCODE_VALUE})
endmacro (set_xcode_property)
###########################################################
#
# options
#
###########################################################
option(BUILD_LIBGEODA "Builds libgeoda" ON)
if (BUILD_LIBGEODA)
add_subdirectory(libgeoda_dylib)
endif()
option(PERF_LIBGEODA "Performance libgeoda" OFF)
if (PERF_LIBGEODA)
add_subdirectory(perf)
endif()
# git clone https://github.com/google/googletest.git
option(GEODA_UNITTEST "Builds the unit test" ON)
if (GEODA_UNITTEST)
set ( CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/Install CACHE PATH "install here" FORCE)
add_subdirectory (googletest)
enable_testing()
add_subdirectory(test)
endif()