-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCMakeLists.txt
111 lines (79 loc) · 4 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
cmake_minimum_required(VERSION 2.8)
project(kevoree-cpp)
set(KEVOREE_CPP_VERSION_MAJOR 0)
set(KEVOREE_CPP_VERSION_MINOR 1)
set(KEVOREE_CPP_VERSION ${KEVOREE_CPP_VERSION_MAJOR}.${KEVOREE_CPP_VERSION_MINOR})
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug)
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pedantic")
#set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/build)
#set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/build)
add_definitions(-DENABLE_LOGGER )
# when building, don't use the install RPATH already
# (but later on when installing)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
# the RPATH to be used when installing
SET(CMAKE_INSTALL_RPATH "")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/")
include(add_boost)
message(boost_ ${CMAKE_CURRENT_SOURCE_DIR}/Third_Parties/boost_${BoostVersion})
set(BOOST_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/Third_Parties/boost_${BoostVersion})
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
SET(ENABLE_CXX11 "-std=c++11")
EXECUTE_PROCESS(COMMAND "${CMAKE_CXX_COMPILER} -dumpversion" OUTPUT_VARIABLE GCC_VERSION)
if (GCC_VERSION VERSION_LESS 4.7)
SET(ENABLE_CXX11 "-std=c++0x")
endif()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ENABLE_CXX11}")
endif()
message("Current OS : ${CMAKE_SYSTEM_NAME}")
message("Current Architecture: ${CMAKE_GENERATOR}")
message("Target Architecture: ${arch_hint}")
message("Compiler : ${CMAKE_CXX_COMPILER}")
message("${ENABLELIBC}")
set(SRC_KEVOREE_CORE kevoree-core)
set(SRC_KEVOREE_TOOLS kevoree-tools)
set(SRC_KEVOREE_PLATFORM kevoree-platform)
set(SRC_KEVOREE_LIBRARY kevoree-library)
set(SRC_KEVOREE_LOGGER kevoree-logger)
set(SRC_KEVOREE_CXX_PLUGIN ${SRC_KEVOREE_TOOLS}/PluginPragma)
set(SRC_KEVOREE_HTTPCLIENT ${SRC_KEVOREE_TOOLS}/HttpClient)
set(SRC_KEVOREE_MODEL ${SRC_KEVOREE_CORE}/model/kevoree)
set(SRC_KEVOREE_TESTS tests)
set(SRC_MAVEN_RESOLVER maven-resolver-cpp)
set(URL_MODEL_GENERATOR "https://github.com/Jean-Emile/boost-extra/raw/master/org.kevoree.modeling.cpp.generator-1.1-20140321.171353-2.jar")
if(${CMAKE_BUILD_TYPE} STREQUAL "Release")
set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS}")
#set(CMAKE_CXX_FLAGS " -O3")
else()
set(CMAKE_CXX_FLAGS "-g ${CMAKE_CXX_FLAGS}")
endif()
IF(NOT EXISTS "${SRC_MAVEN_RESOLVER}" )
execute_process(COMMAND git clone "https://github.com/Jean-Emile/maven-resolver-cpp.git")
ELSE()
execute_process(COMMAND cd maven-resolver-cpp & git pull)
ENDIF()
IF(NOT EXISTS "${SRC_KEVOREE_MODEL}")
# message("Downloading model generator")
#execute_process(COMMAND curl -OL ${URL_MODEL_GENERATOR} )
message("Generate KEVOREE MODEL")
execute_process(COMMAND java -jar kevoree-extra/org.kevoree.modeling.cpp.generator-1.3.1.jar -i kevoree-core/model/metamodel/kevoree.ecore -t kevoree-core/model)
ENDIF()
add_subdirectory (${SRC_MAVEN_RESOLVER}/)
add_subdirectory (${SRC_KEVOREE_CORE}/)
#add_subdirectory (${SRC_KEVOREE_LIBRARY}/)
add_subdirectory (${SRC_KEVOREE_TOOLS}/)
add_subdirectory (${SRC_KEVOREE_PLATFORM}/)
add_subdirectory (${SRC_KEVOREE_LOGGER}/)
if(NOT ANDROID)
add_subdirectory (${SRC_KEVOREE_TESTS}/)
ENDIF()
ADD_CUSTOM_TARGET(upload COMMAND mvn deploy)
ADD_CUSTOM_TARGET(run COMMAND ${CMAKE_BUILD_TYPE}/bin/runtime)
#************************************** INSTALL ****************************************************
install(DIRECTORY ${BOOST_ROOT}/include/boost DESTINATION ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/include FILES_MATCHING PATTERN "*.hpp")
install(DIRECTORY ${BOOST_ROOT}/include/boost DESTINATION ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/include FILES_MATCHING PATTERN "*.ipp")
install(DIRECTORY ${SRC_MAVEN_RESOLVER}/src/ DESTINATION ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/lib FILES_MATCHING PATTERN "*.a")
install(DIRECTORY ${SRC_MAVEN_RESOLVER}/src/ DESTINATION ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/include FILES_MATCHING PATTERN "*.h")
install(DIRECTORY ${BOOST_ROOT}/lib/ DESTINATION ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/lib FILES_MATCHING PATTERN "*.a")