@@ -11,6 +11,17 @@ if(NOT EMULATOR_BUILD)
1111 set (COMMON_COMPILER_FLAGS "${COMMON_COMPILER_FLAGS} -mfpu=neon -mfloat-abi=hard" )
1212endif ()
1313
14+ option (HDZ_GOGGLE "Target Goggles" OFF )
15+ if (HDZ_GOGGLE)
16+ set (COMMON_COMPILER_FLAGS "${COMMON_COMPILER_FLAGS} -DHDZGOGGLE=1" )
17+ file (WRITE ${CMAKE_CURRENT_BINARY_DIR} /mkapp/app/platform "HDZGOGGLE" )
18+ endif ()
19+
20+ option (HDZ_BOXPRO "Target BoxPRO" OFF )
21+ if (HDZ_BOXPRO)
22+ set (COMMON_COMPILER_FLAGS "${COMMON_COMPILER_FLAGS} -DHDZBOXPRO=1" )
23+ file (WRITE ${CMAKE_CURRENT_BINARY_DIR} /mkapp/app/platform "HDZBOXPRO" )
24+ endif ()
1425
1526set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_COMPILER_FLAGS} " )
1627set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_COMPILER_FLAGS} " )
@@ -21,8 +32,8 @@ set(CMAKE_CXX_FLAGS_DEBUG "-g")
2132set (CMAKE_C_FLAGS_RELEASE "-Werror -O3 -DNDEBUG" )
2233set (CMAKE_CXX_FLAGS_RELEASE "-Werror -O3 -DNDEBUG" )
2334
24- set (OS_APP_PATH ${PROJECT_SOURCE_DIR } /mkapp/app/app)
25- set (RECORD_APP_PATH ${PROJECT_SOURCE_DIR } /mkapp/app/app/record)
35+ set (OS_APP_PATH ${CMAKE_CURRENT_BINARY_DIR } /mkapp/app/app)
36+ set (RECORD_APP_PATH ${CMAKE_CURRENT_BINARY_DIR } /mkapp/app/app/record)
2637
2738# common build settings
2839set (STANDARD_LIBRARIES
@@ -40,6 +51,7 @@ add_definitions(
4051 -D_GNU_SOURCE
4152 -DUSE_LOG_LIB_GLOG
4253)
54+
4355if (EMULATOR_BUILD)
4456 add_definitions (
4557 -DEMULATOR_BUILD
@@ -52,26 +64,31 @@ add_subdirectory(lib/minIni)
5264add_subdirectory (lib/log )
5365add_subdirectory (lib/esp-loader )
5466add_subdirectory (lib/softwinner )
67+
5568if (EMULATOR_BUILD)
5669 find_package (SDL2 REQUIRED )
5770else ()
5871 add_subdirectory (lib/ffmpeg )
5972 add_subdirectory (lib/live )
6073endif ()
6174
62-
6375# main application
6476file (GLOB SRC_FILES_CORE "src/core/*.c" "src/core/*.h" )
6577file (GLOB SRC_FILES_DRIVER "src/driver/*.c" "src/driver/*.h" )
6678file (GLOB SRC_FILES_FONTS "src/fonts/*.c" "src/fonts/*.h" )
67- file (GLOB SRC_FILES_IMAGE "src/image/*.c" "src/image/*.h" )
6879file (GLOB SRC_FILES_UI "src/ui/*.c" "src/ui/*.h" )
6980file (GLOB SRC_FILES_BMI "src/bmi270/*.c" "src/bmi270/*.h" )
7081file (GLOB SRC_FILES_UTIL "src/util/*.c" "src/util/*.h" )
7182file (GLOB SRC_FILES_PLAYER "src/player/*.c" "src/player/*.h" )
7283file (GLOB SRC_FILES_EMULATOR "src/emulator/*.c" "src/emulator/*.h" )
7384file (GLOB SRC_FILES_LANG "src/lang/*.c" "src/lang/*.h" )
7485
86+ if (HDZ_GOGGLE)
87+ file (GLOB SRC_FILES_IMAGE "src/image/goggle/*.c" "src/image/goggle/*.h" )
88+ elseif (HDZ_BOXPRO)
89+ file (GLOB SRC_FILES_IMAGE "src/image/boxpro/*.c" "src/image/boxpro/*.h" )
90+ endif ()
91+
7592set (SRC_FILES
7693 ${SRC_FILES_CORE}
7794 ${SRC_FILES_DRIVER}
@@ -82,11 +99,13 @@ set(SRC_FILES
8299 ${SRC_FILES_UTIL}
83100 ${SRC_FILES_LANG}
84101)
102+
85103if (EMULATOR_BUILD)
86104 list (APPEND SRC_FILES ${SRC_FILES_EMULATOR} )
87105else ()
88106 list (APPEND SRC_FILES ${SRC_FILES_PLAYER} )
89107endif ()
108+
90109add_executable (${PROJECT_NAME} ${SRC_FILES} )
91110
92111target_include_directories (${PROJECT_NAME} PRIVATE
@@ -109,13 +128,14 @@ target_link_libraries(${PROJECT_NAME} PRIVATE
109128 esp-loader
110129 softwinner
111130)
131+
112132if (EMULATOR_BUILD)
113133 target_link_libraries (${PROJECT_NAME} PRIVATE ${SDL2_LIBRARIES} )
114134endif ()
115135
116136if (NOT EMULATOR_BUILD)
117137 # record application
118- file (GLOB SRC_FILES_RECORD "src/record/*.c" "src/record/*.h" )
138+ file (GLOB SRC_FILES_RECORD "src/record/*.c" "src/record/*.h" )
119139
120140 add_executable (record
121141 ${SRC_FILES_RECORD}
@@ -166,20 +186,23 @@ if(NOT EMULATOR_BUILD)
166186 )
167187
168188 # image build
189+ add_custom_target (MKAPP ALL
190+ COMMAND rsync -r ${PROJECT_SOURCE_DIR} /mkapp ${CMAKE_CURRENT_BINARY_DIR} /
191+ )
169192 add_custom_command (
170- OUTPUT ${PROJECT_SOURCE_DIR } /out/${PROJECT_NAME}
193+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR } /out/${PROJECT_NAME}
171194 COMMAND size -A ${PROJECT_NAME}
172- COMMAND mkdir -p ${PROJECT_SOURCE_DIR } /out/
173- COMMAND cp ${PROJECT_NAME} ${PROJECT_SOURCE_DIR } /out/
174- COMMAND cp record ${PROJECT_SOURCE_DIR } /out/
175- COMMAND cp rtspLive ${PROJECT_SOURCE_DIR } /out/
195+ COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR } /out/
196+ COMMAND cp ${PROJECT_NAME} ${CMAKE_CURRENT_BINARY_DIR } /out/
197+ COMMAND cp record ${CMAKE_CURRENT_BINARY_DIR } /out/
198+ COMMAND cp rtspLive ${CMAKE_CURRENT_BINARY_DIR } /out/
176199 COMMAND cp ${PROJECT_NAME} ${OS_APP_PATH}
177200 COMMAND cp record ${RECORD_APP_PATH}
178201 COMMAND cp rtspLive ${RECORD_APP_PATH}
179- COMMAND cd ${PROJECT_SOURCE_DIR } && ./mkapp/mkapp_ota.sh
180- DEPENDS ${PROJECT_NAME} record rtspLive
202+ COMMAND cd ${CMAKE_CURRENT_BINARY_DIR } && ./mkapp/mkapp_ota.sh
203+ DEPENDS MKAPP ${PROJECT_NAME} record rtspLive
181204 )
182205 add_custom_target (${PROJECT_NAME} -OTA ALL
183- DEPENDS ${PROJECT_SOURCE_DIR } /out/${PROJECT_NAME}
206+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR } /out/${PROJECT_NAME}
184207 )
185208endif ()
0 commit comments