-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
72 lines (60 loc) · 2.36 KB
/
CMakeLists.txt
File metadata and controls
72 lines (60 loc) · 2.36 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
cmake_minimum_required(VERSION 3.2)
project(cldeplus)
# Build variables
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(VERSION 0.7.0)
set(STORAGE "~/Devel")
set(EXTRA_DIR ${STORAGE}/Extra)
set(MYSQL_DIR ${EXTRA_DIR}/mysql-connector-c-6.1.6-osx10.8-x86_64)
set(CLDEPARSER_DIR "${EXTRA_DIR}/cldeparser-1.0.0")
set(GTEST_DIR "${EXTRA_DIR}/gtest-1.7.0")
# MYSQL
include_directories(${MYSQL_DIR}/include)
link_directories(${MYSQL_DIR}/lib)
# CLDEPARSER
link_directories(${CLDEPARSER_DIR})
include_directories(${CLDEPARSER_DIR}/include)
# GTEST
include_directories(${GTEST_DIR}/include)
link_directories(${GTEST_DIR}/build)
# SOURCE - Core
file(GLOB_RECURSE FOUNDATION_SOURCE Source/Foundation/*.cpp Source/Foundation/*.h Source/Foundation/*.hpp)
file(GLOB_RECURSE RELATION_SOURCE Source/Relation/*.cpp Source/Relation/*.h Source/Relation/*.hpp)
file(GLOB_RECURSE SEGMENTATION_SOURCE Source/Segmentation/*.cpp Source/Segmentation/*.h Source/Segmentation/*.hpp)
# SOURCE - Drivers
file(GLOB_RECURSE DRIVERS_MYSQL Source/Drivers/MySql/*.cpp Source/Drivers/MySql/*.h)
file(GLOB_RECURSE DRIVERS_SQLITE Source/Drivers/SQLite/*.cpp Source/Drivers/SQLite/*.h Source/Drivers/SQLite/Amalgamation/*)
# COMPLETE_SOURCE
set(COMPLETE_SOURCE
Source/cldeplus.h
Source/definitions.h
${FOUNDATION_SOURCE}
${RELATION_SOURCE}
${SEGMENTATION_SOURCE}
${DRIVERS_SQLITE}
${DRIVERS_MYSQL})
# MAIN TARGETS
add_library(cldeplus-static STATIC ${COMPLETE_SOURCE})
add_library(cldeplus SHARED ${COMPLETE_SOURCE})
target_link_libraries(cldeplus-static mysqlclient)
target_link_libraries(cldeplus mysqlclient)
set_target_properties(cldeplus cldeplus-static PROPERTIES
VERSION ${VERSION}
SOVERSION ${VERSION}
)
#if (APPLE)
# set_property(TARGET cldeplus PROPERTY PREFIX "lib")
# set_property(TARGET cldeplus PROPERTY SUFFIX ".so")
#endif ()
# INSTALLATION
set(INSTALL_DIR "${EXTRA_DIR}")
set(CMAKE_INSTALL_PREFIX ${INSTALL_DIR}/${CMAKE_PROJECT_NAME}-${VERSION})
install(DIRECTORY Source/ DESTINATION include/${CMAKE_PROJECT_NAME} FILES_MATCHING PATTERN "*.h")
install(DIRECTORY Source/ DESTINATION include/${CMAKE_PROJECT_NAME} FILES_MATCHING PATTERN "*.hpp")
install(TARGETS cldeplus cldeplus-static
LIBRARY DESTINATION ./
ARCHIVE DESTINATION ./
)
# TARGET-LIBRARIES (Sub-directories)
add_subdirectory(Examples)
add_subdirectory(Test)