CMakeLists.txt 3.43 KB
Newer Older
Timothee Habra's avatar
Timothee Habra committed
1
2
3
4
# Copyright: (C)
# Authors: Timothee Habra
# CopyPolicy: Released under the terms of the LGPLv2.1 or later, see LGPL.TXT

5
cmake_minimum_required(VERSION 2.8.7)
Timothee Habra's avatar
Timothee Habra committed
6
7
8

project(MBsysC_realtime)

9
10
11
12
13
14
15
# project configuration
set( CMAKE_C_FLAGS_RELEASE   "-O3" )
set( CMAKE_CXX_FLAGS_RELEASE "-O3" )

# release of debug
release_debug()

Timothee Habra's avatar
Timothee Habra committed
16
17
# list source files to compile
init_src()
18
19
increment_src( ${PROJECT_SOURCE_DIR}/realtime )
increment_src( ${PROJECT_SOURCE_DIR}/void )
Timothee Habra's avatar
Timothee Habra committed
20
21
22
23

# Get SDL lib and add plot functions to src
if (FLAG_PLOT)

Nicolas Van der Noot's avatar
Nicolas Van der Noot committed
24
25
26
27
    # Find SDL
    sdl_lib(mbs_realtime)
    set(SDL2_LIBRARIES ${SDL2_LIBRARIES} PARENT_SCOPE)
    set(SDL2TTF_LIBRARIES ${SDL2TTF_LIBRARIES} PARENT_SCOPE)
Timothee Habra's avatar
Timothee Habra committed
28

29
    increment_src( ${PROJECT_SOURCE_DIR}/sdl )
Timothee Habra's avatar
Timothee Habra committed
30

Nicolas Van der Noot's avatar
Nicolas Van der Noot committed
31
32
    # configure a header file to pass some of the CMake settings to the source code
    set(SDL_FILES ${CMAKE_CURRENT_SOURCE_DIR}/sdl/SDL_files)
Timothee Habra's avatar
Timothee Habra committed
33

Nicolas Van der Noot's avatar
Nicolas Van der Noot committed
34
35
36
37
38
39
    configure_file (
        "./sdl/conf/cmake_sdl_config.h.in"
        "${PROJECT_BINARY_DIR}/conf/cmake_sdl_config.h"
    )
    include_directories ("${PROJECT_BINARY_DIR}/conf")
endif ()
Timothee Habra's avatar
Timothee Habra committed
40

Nicolas Van der Noot's avatar
Nicolas Van der Noot committed
41
42
43
44
45
46
# 3D visualisation
if(FLAG_VISU)
    include_directories("./visu_past")
    increment_src( ${PROJECT_SOURCE_DIR}/visu_past )
endif ()

Timothee Habra's avatar
Timothee Habra committed
47
# Get java lib and add java functions to src
48
if (FLAG_JAVA)
Timothee Habra's avatar
Timothee Habra committed
49

Nicolas Van der Noot's avatar
Nicolas Van der Noot committed
50
51
52
53
    # find java and java 3d
    java_lib(mbs_realtime)
    set(JNI_LIBRARIES ${JNI_LIBRARIES} PARENT_SCOPE)
    set (J3D_PATH ${J3D_PATH} PARENT_SCOPE)
Timothee Habra's avatar
Timothee Habra committed
54

Nicolas Van der Noot's avatar
Nicolas Van der Noot committed
55
    include_directories("./java")
56
    increment_src( ${PROJECT_SOURCE_DIR}/java )
Timothee Habra's avatar
Timothee Habra committed
57

Nicolas Van der Noot's avatar
Nicolas Van der Noot committed
58
59
60
61
62
    if (APPLE)
        set(JAR_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../mbsyspad_mac_os/MBsysPad.jar)
    else ( )
        set(JAR_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../mbsyspad/MBsysPad.jar)
    endif ( )
Timothee Habra's avatar
Timothee Habra committed
63

Nicolas Van der Noot's avatar
Nicolas Van der Noot committed
64
65
66
67
68
69
    configure_file (
        "./java/conf/cmake_java_config.h.in"
        "${PROJECT_BINARY_DIR}/conf/cmake_java_config.h"
    )
    include_directories ("${PROJECT_BINARY_DIR}/conf")
endif ()
Timothee Habra's avatar
Timothee Habra committed
70

71
72
73
74
75
# Get OpenGL lib
if (FLAG_OPEN_GL)

endif ()

Timothee Habra's avatar
Timothee Habra committed
76
77
# list include directories (to find headers)
init_include()
78
set(INCLUDE_DIR ${INCLUDE_DIR} ${PROJECT_SOURCE_DIR}/realtime PARENT_SCOPE)
Timothee Habra's avatar
Timothee Habra committed
79

Timothee Habra's avatar
Timothee Habra committed
80
81
set(LIB_MBSYSC_REALTIME MBsysC_realtime)
set(LIB_MBSYSC_REALTIME ${LIB_MBSYSC_REALTIME} PARENT_SCOPE)
82
83
84


if(FLAG_SHARED_LIB)
85
	add_library(${LIB_MBSYSC_REALTIME} SHARED ${SOURCE_FILES} ${INCLUDE_DIR})			
86
87
88
89
90
else()
	add_library(${LIB_MBSYSC_REALTIME} STATIC ${SOURCE_FILES} ${INCLUDE_DIR})
	add_definitions( -DPROJECT_USERFCT_STATIC_DEFINE)
	add_definitions( -DPROJECT_UTILITIES_STATIC_DEFINE)
endif()
Timothee Habra's avatar
Timothee Habra committed
91

92
93
94
95
96
if(FLAG_PRJ_FCT_PTR)
	add_definitions( -DPROJECT_USERFCT_STATIC_DEFINE)
	target_link_libraries (${LIB_MBSYSC_REALTIME} MBsysC_struct) 
endif()

97
target_link_libraries (${LIB_MBSYSC_REALTIME} ${LIB_MBSYSC_UTILITIES}) 
Timothee Habra's avatar
Timothee Habra committed
98
99

include (GenerateExportHeader)
100
GENERATE_EXPORT_HEADER( ${LIB_MBSYSC_REALTIME}	)
Timothee Habra's avatar
Timothee Habra committed
101
include_directories(${CMAKE_CURRENT_BINARY_DIR})
102
install (TARGETS ${LIB_MBSYSC_REALTIME} DESTINATION ${CMAKE_INSTALL_PREFIX})
Timothee Habra's avatar
Timothee Habra committed
103

Nicolas Van der Noot's avatar
Nicolas Van der Noot committed
104
105
# SDL external library: linkage
if (FLAG_PLOT)
106
    target_link_libraries (${LIB_MBSYSC_REALTIME} ${SDL2_LIBRARIES} ${SDL2TTF_LIBRARIES})
Nicolas Van der Noot's avatar
Nicolas Van der Noot committed
107
108
109
endif ( )

# Java external library: linkage
110
if (FLAG_JAVA)
111
    target_link_libraries (${LIB_MBSYSC_REALTIME} ${JNI_LIBRARIES})
Nicolas Van der Noot's avatar
Nicolas Van der Noot committed
112
113
endif ( )

114
115
116
117
118
# OpenGl external library: linkage
if (FLAG_OPEN_GL)

endif ( )

119
120
set(LIB_MBSYSC_REALTIME_PATH ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE)

Nicolas Van der Noot's avatar
Nicolas Van der Noot committed
121
# include directories
Timothee Habra's avatar
Timothee Habra committed
122
123
include_directories("./")
include_directories("./sdl" "./sdl/auto_plot")
124
include_directories("./realtime")
Nicolas Van der Noot's avatar
Nicolas Van der Noot committed
125
126
include_directories("../mbs_struct")
include_directories("../mbs_utilities")