@@ -5,97 +5,29 @@ cmake_minimum_required(VERSION 3.4 FATAL_ERROR)
5
5
set (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR} /cmake ${CMAKE_MODULE_PATH} )
6
6
set (CMAKE_CONFIG_DIR ${PROJECT_SOURCE_DIR} /config)
7
7
8
+ find_package (Git QUIET )
9
+ if (GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR} /.git" )
10
+ # Update submodules as needed
11
+ option (GIT_SUBMODULE "Check submodules during build" ON )
12
+ if (GIT_SUBMODULE)
13
+ message (STATUS "Submodule update" )
14
+ execute_process (COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
15
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
16
+ RESULT_VARIABLE GIT_SUBMOD_RESULT)
17
+ execute_process (COMMAND ${GIT_EXECUTABLE} submodule update --remote --merge
18
+ --merge)
19
+ if (NOT GIT_SUBMOD_RESULT EQUAL "0" )
20
+ message (FATAL_ERROR "git submodule update --init --recursive failed with ${GIT_SUBMOD_RESULT} , please checkout submodules" )
21
+ endif ()
22
+ endif ()
23
+ endif ()
24
+
25
+
8
26
if ("${TOOLCHAIN} " STREQUAL "docker" OR "${TOOLCHAIN} " STREQUAL "vm" )
9
27
include (${CMAKE_MODULE_PATH} /init_remote_projects.cmake)
10
28
else ()
11
- set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
12
- set (CMAKE_BUILD_TYPE "Debug" )
13
- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR} /bin)
14
-
15
- add_compile_options ("-Wall" "-O0" )
16
-
17
- option (TRACE_FUNCTIONS "Trace function calls using instrument-functions" )
18
-
19
- find_package (Threads)
20
- find_package (SDL2 REQUIRED)
21
- include_directories (${SDL2_INCLUDE_DIRS} )
22
- find_package (SDL2_gfx REQUIRED)
23
- include_directories (${SDL2_GFX_INCLUDE_DIRS} )
24
- find_package (SDL2_image REQUIRED)
25
- include_directories (${SDL2_IMAGE_INCLUDE_DIRS} )
26
- find_package (SDL2_mixer REQUIRED)
27
- include_directories (${SDL2_MIXER_INCLUDE_DIRS} )
28
- find_package (SDL2_ttf REQUIRED)
29
- include_directories (${SDL2_TTF_INCLUDE_DIRS} )
30
-
31
- find_package (Git QUIET )
32
- if (GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR} /.git" )
33
- # Update submodules as needed
34
- option (GIT_SUBMODULE "Check submodules during build" ON )
35
- if (GIT_SUBMODULE)
36
- message (STATUS "Submodule update" )
37
- execute_process (COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
38
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
39
- RESULT_VARIABLE GIT_SUBMOD_RESULT)
40
- # git submodule update --remote
41
- execute_process (COMMAND ${GIT_EXECUTABLE} submodule update --remote
42
- --merge)
43
- if (NOT GIT_SUBMOD_RESULT EQUAL "0" )
44
- message (FATAL_ERROR "git submodule update --init --recursive failed with ${GIT_SUBMOD_RESULT} , please checkout submodules" )
45
- endif ()
46
- endif ()
47
- endif ()
48
29
49
- SET (PROJECT_INCLUDES
50
- ${PROJECT_SOURCE_DIR} /lib/FreeRTOS_Kernel/include
51
- ${PROJECT_SOURCE_DIR} /lib/FreeRTOS_Kernel/portable/GCC/Posix
52
- ${PROJECT_SOURCE_DIR} /lib/Gfx/include
53
- ${PROJECT_SOURCE_DIR} /lib/AsyncIO/include
54
- ${PROJECT_SOURCE_DIR} /lib/StateMachine/include
55
- ${PROJECT_SOURCE_DIR} /lib/tracer/include
56
- ${PROJECT_SOURCE_DIR} /lib/LL
57
- ${PROJECT_SOURCE_DIR} /include
58
- )
59
-
60
- include_directories (${PROJECT_INCLUDES} )
61
-
62
- file (GLOB FREERTOS_SOURCES
63
- "${PROJECT_SOURCE_DIR} /lib/FreeRTOS_Kernel/*.c"
64
- "${PROJECT_SOURCE_DIR} /lib/FreeRTOS_Kernel/portable/GCC/Posix/*.c"
65
- "${PROJECT_SOURCE_DIR} /lib/FreeRTOS_Kernel/portable/MemMang/heap_3.c" )
66
- file (GLOB GFX_SOURCES "${PROJECT_SOURCE_DIR} /lib/Gfx/*.c" )
67
- file (GLOB STATE_MACHINE_SOURCES "${PROJECT_SOURCE_DIR} /lib/StateMachine/*.c" )
68
- file (GLOB ASYNC_SOURCES "${PROJECT_SOURCE_DIR} /lib/AsyncIO/*.c" )
69
- file (GLOB SIMULATOR_SOURCES "${PROJECT_SOURCE_DIR} /src/*.c" )
70
-
71
- SET (PROJECT_SOURCES
72
- ${SIMULATOR_SOURCES} ${FREERTOS_SOURCES} ${GFX_SOURCES} ${STATE_MACHINE_SOURCES} ${ASYNC_SOURCES}
73
- )
74
-
75
- set (PROJECT_LIBRARIES
76
- ${SDL2_LIBRARIES}
77
- ${SDL2_GFX_LIBRARIES}
78
- ${SDL2_IMAGE_LIBRARIES}
79
- ${SDL2_MIXER_LIBRARIES}
80
- ${SDL2_TTF_LIBRARIES}
81
- m
82
- ${CMAKE_THREAD_LIBS_INIT}
83
- rt
84
- )
85
-
86
- include (${CMAKE_MODULE_PATH} /tests.cmake)
87
-
88
- add_executable (${CMAKE_PROJECT_NAME} ${PROJECT_SOURCES} )
89
-
90
- if (TRACE_FUNCTIONS)
91
- add_definitions (-DTRACE_FUNCTIONS)
92
- SET (GCC_COVERAGE_COMPILE_FLAGS "-finstrument-functions" )
93
- target_compile_options (FreeRTOS_Emulator PUBLIC ${GCC_COVERAGE_COMPILE_FLAGS} )
94
- endif (TRACE_FUNCTIONS)
95
-
96
- target_link_libraries (${CMAKE_PROJECT_NAME} ${PROJECT_LIBRARIES} )
97
-
98
- if (DOCS)
30
+ if (DOCS_ONLY)
99
31
find_package (Doxygen REQUIRED)
100
32
101
33
add_custom_target (
@@ -105,7 +37,91 @@ else()
105
37
COMMENT "Generating API documentation with Doxygen"
106
38
VERBATIM
107
39
)
108
- endif ()
40
+ else ()
41
+
42
+ set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
43
+ set (CMAKE_BUILD_TYPE "Debug" )
44
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR} /bin)
45
+
46
+ add_compile_options ("-Wall" "-O0" )
47
+
48
+ option (TRACE_FUNCTIONS "Trace function calls using instrument-functions" )
49
+
50
+ find_package (Threads)
51
+ find_package (SDL2 REQUIRED)
52
+ include_directories (${SDL2_INCLUDE_DIRS} )
53
+ find_package (SDL2_gfx REQUIRED)
54
+ include_directories (${SDL2_GFX_INCLUDE_DIRS} )
55
+ find_package (SDL2_image REQUIRED)
56
+ include_directories (${SDL2_IMAGE_INCLUDE_DIRS} )
57
+ find_package (SDL2_mixer REQUIRED)
58
+ include_directories (${SDL2_MIXER_INCLUDE_DIRS} )
59
+ find_package (SDL2_ttf REQUIRED)
60
+ include_directories (${SDL2_TTF_INCLUDE_DIRS} )
61
+
62
+ SET (PROJECT_INCLUDES
63
+ ${PROJECT_SOURCE_DIR} /lib/FreeRTOS_Kernel/include
64
+ ${PROJECT_SOURCE_DIR} /lib/FreeRTOS_Kernel/portable/GCC/Posix
65
+ ${PROJECT_SOURCE_DIR} /lib/Gfx/include
66
+ ${PROJECT_SOURCE_DIR} /lib/AsyncIO/include
67
+ ${PROJECT_SOURCE_DIR} /lib/StateMachine/include
68
+ ${PROJECT_SOURCE_DIR} /lib/tracer/include
69
+ ${PROJECT_SOURCE_DIR} /lib/LL
70
+ ${PROJECT_SOURCE_DIR} /include
71
+ )
72
+
73
+ include_directories (${PROJECT_INCLUDES} )
74
+
75
+ file (GLOB FREERTOS_SOURCES
76
+ "${PROJECT_SOURCE_DIR} /lib/FreeRTOS_Kernel/*.c"
77
+ "${PROJECT_SOURCE_DIR} /lib/FreeRTOS_Kernel/portable/GCC/Posix/*.c"
78
+ "${PROJECT_SOURCE_DIR} /lib/FreeRTOS_Kernel/portable/MemMang/heap_3.c" )
79
+ file (GLOB GFX_SOURCES "${PROJECT_SOURCE_DIR} /lib/Gfx/*.c" )
80
+ file (GLOB STATE_MACHINE_SOURCES "${PROJECT_SOURCE_DIR} /lib/StateMachine/*.c" )
81
+ file (GLOB ASYNC_SOURCES "${PROJECT_SOURCE_DIR} /lib/AsyncIO/*.c" )
82
+ file (GLOB SIMULATOR_SOURCES "${PROJECT_SOURCE_DIR} /src/*.c" )
83
+
84
+ SET (PROJECT_SOURCES
85
+ ${SIMULATOR_SOURCES} ${FREERTOS_SOURCES} ${GFX_SOURCES} ${STATE_MACHINE_SOURCES} ${ASYNC_SOURCES}
86
+ )
87
+
88
+ set (PROJECT_LIBRARIES
89
+ ${SDL2_LIBRARIES}
90
+ ${SDL2_GFX_LIBRARIES}
91
+ ${SDL2_IMAGE_LIBRARIES}
92
+ ${SDL2_MIXER_LIBRARIES}
93
+ ${SDL2_TTF_LIBRARIES}
94
+ m
95
+ ${CMAKE_THREAD_LIBS_INIT}
96
+ rt
97
+ )
98
+
99
+ include (${CMAKE_MODULE_PATH} /tests.cmake)
100
+
101
+ add_executable (${CMAKE_PROJECT_NAME} ${PROJECT_SOURCES} )
102
+
103
+ if (TRACE_FUNCTIONS)
104
+ add_definitions (-DTRACE_FUNCTIONS)
105
+ SET (GCC_COVERAGE_COMPILE_FLAGS "-finstrument-functions" )
106
+ target_compile_options (FreeRTOS_Emulator PUBLIC ${GCC_COVERAGE_COMPILE_FLAGS} )
107
+ endif (TRACE_FUNCTIONS)
108
+
109
+ target_link_libraries (${CMAKE_PROJECT_NAME} ${PROJECT_LIBRARIES} )
110
+
111
+ if (DOCS)
112
+ find_package (Doxygen REQUIRED)
113
+
114
+ add_custom_target (
115
+ docs
116
+ COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_SOURCE_DIR} /docs/Doxyfile
117
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /docs
118
+ COMMENT "Generating API documentation with Doxygen"
119
+ VERBATIM
120
+ )
121
+ endif ()
122
+
123
+ include (${CMAKE_MODULE_PATH} /init_local_projects.cmake)
124
+ endif ()
109
125
110
- include (${CMAKE_MODULE_PATH} /init_local_projects.cmake)
111
126
endif ()
127
+
0 commit comments