CMakeLists.txt 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524
  1. cmake_minimum_required(VERSION 2.8)
  2. set(ISPSDK_VERSION 2.0.3)
  3. if (DEFINED CROSS_COMPILE)
  4. message(STATUS "CROSS_COMPILE=${CROSS_COMPILE}")
  5. # specify the cross compiler
  6. set(CMAKE_C_COMPILER "${CROSS_COMPILE}gcc")
  7. set(CMAKE_CXX_COMPILER "${CROSS_COMPILE}g++")
  8. # could specify C and CXX flags here
  9. #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Os -fvisibility=hidden")
  10. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Os")
  11. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Os -fvisibility=hidden")
  12. # compiler flags should be modifiable in build/c_flag_overrides.cmake
  13. # and build/cxx_flag_overrides.cmake
  14. # search for lib and includes only in cross compile path
  15. set(CMAKE_FIND_ROOT_PATH "${CROSS_COMPILE}")
  16. set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
  17. set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
  18. set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
  19. endif()
  20. project (Mantis_DDK)
  21. if (DEFINED RUN_PLATFORM)
  22. if ("x${RUN_PLATFORM}" STREQUAL "xRISCV")
  23. #message(STATUS "Building the cd_system for RISCV")
  24. option(BUILD_CD_SYSTEM "Build the cd_system into kernel driver" ON)
  25. #message(STATUS "Build the kernel driver for RISCV")
  26. option(TEST_ON_UBUNTU "Build the kernel driver for Ubuntu" OFF)
  27. elseif ("x${RUN_PLATFORM}" STREQUAL "xARM")
  28. #message(STATUS "Building the cd_system for ARM")
  29. option(BUILD_CD_SYSTEM "Build the fack cd_system into kernel driver" OFF)
  30. #message(STATUS "Build the kernel driver for ARM")
  31. option(TEST_ON_UBUNTU "Build the kernel driver for Ubuntu" OFF)
  32. else()
  33. #message(STATUS "Building the cd_system for Ubuntu")
  34. option(BUILD_CD_SYSTEM "Build the fack cd_system into kernel driver" OFF)
  35. #message(STATUS "Build the kernel driver for Ubuntu")
  36. option(TEST_ON_UBUNTU "Build the kernel driver for Ubuntu" ON)
  37. endif()
  38. else()
  39. #message(STATUS "Building cd_system for Ubuntu")
  40. option(BUILD_CD_SYSTEM "Build the fack cd_system into kernel driver" OFF)
  41. #message(STATUS "Build the kernel driver for Ubuntu")
  42. option(TEST_ON_UBUNTU "Build the kernel driver for Ubuntu" ON)
  43. endif()
  44. option(BUILD_RELEASE_VERSION "Build the ISP SDK as a release version" ON)
  45. option(BUILD_KERNEL_DRIVER "Build the kernel driver (Mantis Device Driver)" OFF)
  46. option(BUILD_CAPTUREINTERFACE "Build the Capture Interface (Mantis Hardware Driver)" ON)
  47. option(BUILD_ISPCONTROL "Build the ISP Control" OFF)
  48. option(BUILD_API "Build the ISP API" OFF)
  49. option(BUILD_TEST_APPS "Build the Test applications" ON)
  50. option(BUILD_STARFIVE_APPS "Build the StarFive applications" ON)
  51. option(BUILD_SENSORAPI "Build the Mantis Sensor API" ON)
  52. option(BUILD_MEDIA_CTRL "Build the media control API" OFF)
  53. option(CI_MEM_DMA_ON "Build the CI memory machansim MEM DMA" OFF)
  54. option(LOAD_TEST_DATA "Load test image or data into memory buffer" OFF)
  55. option(ONE_OUT_MODULE "Merge UO, SS0 and SS1 into one out module architechure" OFF)
  56. option(DISABLE_CSI_MODULES "Disable csi modules" OFF)
  57. option(ENABLE_COLOR_BAR "Enable color bar module" OFF)
  58. option(ENABLE_TIL_1_RD "Enable tiling 1 read module" OFF)
  59. option(ENABLE_TIL_1_WR "Enable tiling 1 write module" OFF)
  60. option(BUILD_HW_VIC_1_0 "Build for HW VIC 1.0" ON)
  61. option(SENSOR_SC2235_DVP "Build SC2235 DVP sensor" ON)
  62. option(SENSOR_OV4689_MIPI "Build OV4689 MIPI sensor" ON)
  63. option(SENSOR_IMX219_MIPI "Build IMX219 MIPI sensor" ON)
  64. option(BUILD_V4L2_DRIVER "Build for V4L2 driver" ON)
  65. option(CONFIG_STF_DUAL_ISP "Build for V4L2 driver dual isp" OFF)
  66. option(OLD_ISP_VIDEO_DEVICE_NO_ORDER "Build for V4L2 driver old video no order" OFF)
  67. if (DEFINED ARCH_RISCV)
  68. if (${ARCH_RISCV} STREQUAL "Y")
  69. option(RISCV "Build for risc-v platform" ON)
  70. else()
  71. option(RISCV "Build for risc-v platform" OFF)
  72. endif()
  73. else()
  74. option(RISCV "Build for risc-v platform" OFF)
  75. endif()
  76. option(DEBUG_MODULES "Display CMake debug information" ON)
  77. if(NOT WIN32)
  78. option(ENABLE_GPROF "Enable gprof for gcc" OFF)
  79. endif()
  80. set(P4UTILS_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
  81. if (BUILD_V4L2_DRIVER)
  82. message(STATUS "Build for V4L2 driver")
  83. else()
  84. endif()
  85. if (CONFIG_STF_DUAL_ISP)
  86. message(STATUS "Build for V4L2 driver dual isp")
  87. else()
  88. message(STATUS "Build for V4L2 driver single isp")
  89. endif()
  90. if (OLD_ISP_VIDEO_DEVICE_NO_ORDER)
  91. message(STATUS "Build for V4L2 driver old video no order")
  92. else()
  93. message(STATUS "Build for V4L2 driver new video no order")
  94. endif()
  95. if (BUILD_HW_VIC_1_0)
  96. else()
  97. option(BUILD_HW_VIC_1_0 "Build for HW VIC 1.0" ON)
  98. endif()
  99. if (ENABLE_TIL_1_RD AND ENABLE_COLOR_BAR)
  100. #message(STATUS "ENABLE_COLOR_BAR is ON, and try to turn ENABLE_COLOR_BAR OFF")
  101. option(ENABLE_COLOR_BAR "Enable color bar module" OFF)
  102. endif()
  103. if (BUILD_HW_VIC_1_0)
  104. option(SUPPORT_LCBQ_MODULE "Enable LCBQ module architechure" ON)
  105. option(SUPPORT_DUMP_MODULE "Enable DUMP module architechure" ON)
  106. option(SUPPORT_OECFHM_MODULE "Enable OECFHM module architechure" ON)
  107. option(SUPPORT_CFA_AHD_MODULE "Enable CFA_AHD module architechure" ON)
  108. option(SUPPORT_CFA_GRAD_MODULE "Enable CFA_GRAD module architechure" OFF)
  109. else ()
  110. endif()
  111. #if (SENSOR_SC2235_DVP AND SENSOR_OV4689_MIPI AND SENSOR_IMX219_MIPI)
  112. # option(SENSOR_SC2235_DVP "Disable SC2235 DVP sensor build" OFF)
  113. # option(SENSOR_OV4689_MIPI "Disable OV4689 MIPI sensor build" OFF)
  114. #elseif (SENSOR_SC2235_DVP AND SENSOR_OV4689_MIPI)
  115. # option(SENSOR_OV4689_MIPI "Disable OV4689 MIPI sensor build" OFF)
  116. #elseif (SENSOR_SC2235_DVP AND SENSOR_IMX219_MIPI)
  117. # option(SENSOR_SC2235_DVP "Disable SC2235 DVP sensor build" OFF)
  118. #elseif (SENSOR_OV4689_MIPI AND SENSOR_IMX219_MIPI)
  119. # option(SENSOR_OV4689_MIPI "Disable OV4689 MIPI sensor build" OFF)
  120. #elseif (SENSOR_SC2235_DVP)
  121. #elseif (SENSOR_OV4689_MIPI)
  122. #elseif (SENSOR_IMX219_MIPI)
  123. #else()
  124. # option(SENSOR_IMX219_MIPI "Build IMX219 MIPI sensor" ON)
  125. #endif()
  126. #
  127. if (SUPPORT_CFA_AHD_MODULE)
  128. else()
  129. option(SUPPORT_CFA_AHD_MODULE "Enable CFA_AHD module architechure" ON)
  130. endif()
  131. if (SUPPORT_LCBQ_MODULE)
  132. message(STATUS "Build LCBQ module")
  133. endif()
  134. if (SUPPORT_DUMP_MODULE)
  135. message(STATUS "Build DUMP module")
  136. endif()
  137. if (SUPPORT_OECFHM_MODULE)
  138. message(STATUS "Build OECFHM module")
  139. endif()
  140. if (SUPPORT_CFA_AHD_MODULE)
  141. message(STATUS "Build CFA_AHD module")
  142. endif()
  143. if (SUPPORT_CFA_GRAD_MODULE)
  144. message(STATUS "Build CFA_GRAD module")
  145. endif()
  146. if (DISABLE_CSI_MODULES)
  147. message(STATUS "Disable csi modules")
  148. endif()
  149. if (ENABLE_COLOR_BAR)
  150. message(STATUS "Enable color bar module")
  151. endif()
  152. if (ENABLE_TIL_1_RD)
  153. message(STATUS "Enable tiling 1 read module")
  154. endif()
  155. if (ENABLE_TIL_1_WR)
  156. message(STATUS "Enable tiling 1 write module")
  157. endif()
  158. if (LOAD_TEST_DATA)
  159. else()
  160. if ((ENABLE_TIL_1_RD) AND TEST_ON_UBUNTU)
  161. #message(STATUS "LOAD_TEST_DATA is OFF, and try to turn LOAD_TEST_DATA ON")
  162. option(LOAD_TEST_DATA "Load test image or data into memory buffer" ON)
  163. endif()
  164. endif()
  165. #set(CMAKE_BUILD_TYPE "RelWithDebInfo")
  166. if (NOT DEFINED CMAKE_BUILD_TYPE)
  167. message("NOT DEFINED CMAKE_BUILD_TYPE")
  168. if (WIN32)
  169. set(CMAKE_BUILD_TYPE "Debug")
  170. else()
  171. #set(CMAKE_BUILD_TYPE "Debug")
  172. #set(CMAKE_BUILD_TYPE "RelWithDebInfo")
  173. set(CMAKE_BUILD_TYPE "Release")
  174. endif()
  175. else()
  176. message("DEFINED CMAKE_BUILD_TYPE")
  177. endif()
  178. message("CMake Build type: ${CMAKE_BUILD_TYPE}")
  179. set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
  180. ${CMAKE_CURRENT_SOURCE_DIR}/build
  181. )
  182. if (NOT DEFINED STFCOMMON_NDEBUG)
  183. if (CMAKE_BUILD_TYPE MATCHES "Release")
  184. set(STFCOMMON_NDEBUG ON)
  185. else()
  186. set(STFCOMMON_NDEBUG OFF)
  187. endif()
  188. endif()
  189. if (NOT DEFINED STFCOMMON_NPERF)
  190. if (CMAKE_BUILD_TYPE MATCHES "Release")
  191. set(STFCOMMON_NPERF ON)
  192. else()
  193. set(STFCOMMON_NPERF OFF)
  194. endif()
  195. elseif (DEFINED ISPC_PERFLOG)
  196. # ensure that if ISPC_PERFLOG is on then STFCOMMON_NPERF is on too
  197. if (${ISPC_PERFLOG})
  198. if (${STFCOMMON_NPERF})
  199. message("Forcing STFCOMMON_NPERF to OFF because ISPC_PERFLOG=${ISPC_PERFLOG}")
  200. set(STFCOMMON_NPERF OFF)
  201. endif()
  202. endif()
  203. endif()
  204. if (DEBUG_MODULES)
  205. message("STFCOMMON_NDEBUG = ${STFCOMMON_NDEBUG}")
  206. message("STFCOMMON_NPERF = ${STFCOMMON_NPERF}")
  207. endif()
  208. #
  209. # as GTEST is part of the build enable testing
  210. #
  211. enable_testing() # add_test can be used from now on
  212. #
  213. # tools are independent
  214. # - either not compiled
  215. # - or compiled with their own env
  216. #
  217. # tools are not given to the customer
  218. #
  219. message("CMAKE_CURRENT_SOURCE_DIR/tools = ${CMAKE_CURRENT_SOURCE_DIR}/tools")
  220. if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tools")
  221. set(TOOL_INSTALL_DIR ${Mantis_DDK_BINARY_DIR}/tools/installed)
  222. set(GENERATE_TOOL_DEF2CODE ${TOOL_INSTALL_DIR}/def2code)
  223. set(CMAKE_PROGRAM_PATH ${CMAKE_PROGRAM_PATH} ${TOOL_INSTALL_DIR})
  224. add_subdirectory(tools)
  225. endif()
  226. if (BUILD_RELEASE_VERSION)
  227. string(REGEX REPLACE "/$" "" CURRENT_FOLDER_ABSOLUTE ${CMAKE_CURRENT_SOURCE_DIR})
  228. string(REGEX REPLACE ".*/(.*)" "\\1" CURRENT_FOLDER ${CURRENT_FOLDER_ABSOLUTE})
  229. get_filename_component(CURRENT_FOLDER ${CURRENT_FOLDER_ABSOLUTE} NAME)
  230. get_filename_component(PARENT_FOLDER_ABSOLUTE ${CURRENT_FOLDER_ABSOLUTE} PATH)
  231. get_filename_component(PARENT_FOLDER ${PARENT_FOLDER_ABSOLUTE} NAME)
  232. get_filename_component(TOP_FOLDER_ABSOLUTE ${PARENT_FOLDER_ABSOLUTE} PATH)
  233. get_filename_component(TOPT_FOLDER ${TOP_FOLDER_ABSOLUTE} NAME)
  234. #message("===== Godspeed ===== CURRENT_FOLDER_ABSOLUTE = ${CURRENT_FOLDER_ABSOLUTE}")
  235. #message("===== Godspeed ===== CURRENT_FOLDER = ${CURRENT_FOLDER}")
  236. #message("===== Godspeed ===== PARENT_FOLDER_ABSOLUTE = ${PARENT_FOLDER_ABSOLUTE}")
  237. #message("===== Godspeed ===== PARENT_FOLDER = ${PARENT_FOLDER}")
  238. #message("===== Godspeed ===== TOP_FOLDER_ABSOLUTE = ${TOP_FOLDER_ABSOLUTE}")
  239. #message("===== Godspeed ===== TOPT_FOLDER = ${TOPT_FOLDER}")
  240. if (${CURRENT_FOLDER} STREQUAL "DDKSource")
  241. set(LIBISPSDK_PATH ${CURRENT_FOLDER_ABSOLUTE}/libispsdk)
  242. elseif (${CURRENT_FOLDER} MATCHES "^ispsdk")
  243. set(LIBISPSDK_PATH ${CURRENT_FOLDER_ABSOLUTE}/libispsdk)
  244. elseif (${CURRENT_FOLDER} MATCHES "^isp_release")
  245. set(LIBISPSDK_PATH ${CURRENT_FOLDER_ABSOLUTE}/libispsdk)
  246. elseif (${CURRENT_FOLDER} MATCHES "^isp")
  247. set(LIBISPSDK_PATH ${CURRENT_FOLDER_ABSOLUTE}/libispsdk)
  248. elseif (${PARENT_FOLDER} STREQUAL "DDKSource")
  249. set(LIBISPSDK_PATH ${PARENT_FOLDER_ABSOLUTE}/libispsdk)
  250. elseif (${PARENT_FOLDER} MATCHES "^ispsdk")
  251. set(LIBISPSDK_PATH ${PARENT_FOLDER_ABSOLUTE}/libispsdk)
  252. elseif (${PARENT_FOLDER} MATCHES "^isp_release")
  253. set(LIBISPSDK_PATH ${PARENT_FOLDER_ABSOLUTE}/libispsdk)
  254. elseif (${PARENT_FOLDER} MATCHES "^isp")
  255. set(LIBISPSDK_PATH ${PARENT_FOLDER_ABSOLUTE}/libispsdk)
  256. elseif (${TOPT_FOLDER} STREQUAL "DDKSource")
  257. set(LIBISPSDK_PATH ${TOP_FOLDER_ABSOLUTE}/libispsdk)
  258. elseif (${TOPT_FOLDER} MATCHES "^ispsdk")
  259. set(LIBISPSDK_PATH ${TOP_FOLDER_ABSOLUTE}/libispsdk)
  260. elseif (${TOPT_FOLDER} MATCHES "^isp_release")
  261. set(LIBISPSDK_PATH ${TOP_FOLDER_ABSOLUTE}/libispsdk)
  262. elseif (${TOPT_FOLDER} MATCHES "^isp")
  263. set(LIBISPSDK_PATH ${TOP_FOLDER_ABSOLUTE}/libispsdk)
  264. else()
  265. message(FATAL_ERROR "The libispsdk path is not found!!!")
  266. endif()
  267. if (CHECK_ISP_SDK_LIB_FILES)
  268. file(GLOB files ${LIBISPSDK_PATH}/*)
  269. foreach(file IN LISTS files)
  270. message(STATUS ${file})
  271. endforeach(file)
  272. endif()
  273. #=== Since the find_library does not work for the static library, so use add_library ===
  274. if (USE_FIND_LIBRARY_METHOD)
  275. set(CMAKE_FIND_LIBRARY_SUFFIXES .a .lib)
  276. find_library(StfIncludesLib
  277. NAMES libStfIncludes.a StfIncludes.a StfIncludes
  278. PATHS ${LIBISPSDK_PATH}
  279. NO_DEFAULT_PATH
  280. )
  281. if (StfIncludesLib)
  282. #message(STATUS "Library (StfIncludesLib) found in ${LIBISPSDK_PATH}")
  283. else()
  284. message(FATAL_ERROR "Library (StfIncludesLib) not found")
  285. endif()
  286. find_library(StfCommonLib
  287. NAMES "libStfCommon.a"
  288. PATHS PATHS ${LIBISPSDK_PATH}
  289. NO_DEFAULT_PATH
  290. )
  291. if (StfCommonLib)
  292. #message(STATUS "Library (StfCommonLib) found in ${LIBISPSDK_PATH}")
  293. else()
  294. message(FATAL_ERROR "Library (StfCommonLib) not found")
  295. endif()
  296. find_library(LinkedListLib
  297. NAMES "libStfLib_LinkedList.a"
  298. PATHS PATHS ${LIBISPSDK_PATH}
  299. NO_DEFAULT_PATH
  300. )
  301. if (LinkedListLib)
  302. #message(STATUS "Library (LinkedListLib) found in ${LIBISPSDK_PATH}")
  303. else()
  304. message(FATAL_ERROR "Library (LinkedListLib) not found")
  305. endif()
  306. find_library(CI_UserLib
  307. NAMES "libCI_User.a"
  308. PATHS PATHS ${LIBISPSDK_PATH}
  309. NO_DEFAULT_PATH
  310. )
  311. if (CI_UserLib)
  312. #message(STATUS "Library (CI_UserLib) found in ${LIBISPSDK_PATH}")
  313. else()
  314. message(FATAL_ERROR "Library (CI_UserLib) not found")
  315. endif()
  316. find_library(SensorApi
  317. NAMES "libsensorapi.a"
  318. PATHS PATHS ${LIBISPSDK_PATH}
  319. NO_DEFAULT_PATH
  320. )
  321. if (SensorApi)
  322. #message(STATUS "Library (SensorApi) found in ${LIBISPSDK_PATH}")
  323. else()
  324. message(FATAL_ERROR "Library (SensorApi) not found")
  325. endif()
  326. find_library(MediaCtrlLib
  327. NAMES "libmedia-ctrl.a"
  328. PATHS PATHS ${LIBISPSDK_PATH}
  329. NO_DEFAULT_PATH
  330. )
  331. if (MediaCtrlLib)
  332. #message(STATUS "Library (MediaCtrlLib) found in ${LIBISPSDK_PATH}")
  333. else()
  334. message(FATAL_ERROR "Library (MediaCtrlLib) not found")
  335. endif()
  336. find_library(ISPCLib
  337. NAMES "libISPC.a"
  338. PATHS PATHS ${LIBISPSDK_PATH}
  339. NO_DEFAULT_PATH
  340. )
  341. if (ISPCLib)
  342. #message(STATUS "Library (ISPCLib) found in ${LIBISPSDK_PATH}")
  343. else()
  344. message(FATAL_ERROR "Library (ISPCLib) not found")
  345. endif()
  346. find_library(ISP_APILib
  347. NAMES "libISP_API.a"
  348. PATHS PATHS ${LIBISPSDK_PATH}
  349. NO_DEFAULT_PATH
  350. )
  351. if (ISP_APILib)
  352. #message(STATUS "Library (ISP_APILib) found in ${LIBISPSDK_PATH}")
  353. else()
  354. message(FATAL_ERROR "Library (ISP_APILib) not found")
  355. endif()
  356. else()
  357. #===== stf_includes =====
  358. add_library(StfIncludesLib STATIC IMPORTED GLOBAL)
  359. #set_property(TARGET StfIncludesLib PROPERTY IMPORTED_LOCATION ${STFINCLUDES_LIB_DIRS}/libStfIncludes.a)
  360. set_property(TARGET StfIncludesLib PROPERTY IMPORTED_LOCATION ${LIBISPSDK_PATH}/libStfIncludes.a)
  361. #set_target_properties(StfIncludesLib PROPERTIES IMPORTED_LOCATION ${LIBISPSDK_PATH}/libStfIncludes.a)
  362. #===== stf_common =====
  363. add_library(StfCommonLib STATIC IMPORTED)
  364. #set_property(TARGET StfCommonLib PROPERTY IMPORTED_LOCATION ${STFCOMMON_LIB_DIRS}/libStfCommon.a)
  365. set_property(TARGET StfCommonLib PROPERTY IMPORTED_LOCATION ${LIBISPSDK_PATH}/libStfCommon.a)
  366. #set_target_properties(StfCommonLib PROPERTIES IMPORTED_LOCATION ${LIBISPSDK_PATH}/libStfCommon.a)
  367. #===== linkedlist =====
  368. add_library(LinkedListLib STATIC IMPORTED)
  369. #set_property(TARGET LinkedListLib PROPERTY IMPORTED_LOCATION ${LINKEDLIST_LIB_DIRS}/libStfLib_LinkedList.a)
  370. set_property(TARGET LinkedListLib PROPERTY IMPORTED_LOCATION ${LIBISPSDK_PATH}/libStfLib_LinkedList.a)
  371. #set_target_properties(LinkedListLib PROPERTIES IMPORTED_LOCATION ${LIBISPSDK_PATH}/libStfLib_LinkedList.a)
  372. #===== CI_User =====
  373. add_library(CI_UserLib STATIC IMPORTED)
  374. #set_property(TARGET CI_UserLib PROPERTY IMPORTED_LOCATION ${STFDRVAPI_LIB_DIRS}/libCI_User.a)
  375. set_property(TARGET CI_UserLib PROPERTY IMPORTED_LOCATION ${LIBISPSDK_PATH}/libCI_User.a)
  376. #set_target_properties(CI_UserLib PROPERTIES IMPORTED_LOCATION ${LIBISPSDK_PATH}/libCI_User.a)
  377. #===== SensorApi =====
  378. #add_library(SensorApi STATIC IMPORTED)
  379. #set_property(TARGET SensorApi PROPERTY IMPORTED_LOCATION ${SENSORAPI_LIB_DIRS}/libsensorapi.a)
  380. #set_property(TARGET SensorApi PROPERTY IMPORTED_LOCATION ${LIBISPSDK_PATH}/libsensorapi.a)
  381. #set_target_properties(SensorApi PROPERTIES IMPORTED_LOCATION ${LIBISPSDK_PATH}/libsensorapi.a)
  382. #===== MediaCtrl =====
  383. add_library(MediaCtrlLib STATIC IMPORTED)
  384. #set_property(TARGET MediaCtrlLib PROPERTY IMPORTED_LOCATION ${MEDIACTRLLIB_LIB_DIRS}/libmedia-ctrl.a)
  385. set_property(TARGET MediaCtrlLib PROPERTY IMPORTED_LOCATION ${LIBISPSDK_PATH}/libmedia-ctrl.a)
  386. #set_target_properties(MediaCtrlLib PROPERTIES IMPORTED_LOCATION ${LIBISPSDK_PATH}/libmedia-ctrl.a)
  387. #===== ISPC =====
  388. add_library(ISPCLib STATIC IMPORTED)
  389. #set_property(TARGET ISPCLib PROPERTY IMPORTED_LOCATION ${SENSORAPI_LIB_DIRS}/libISPC.a)
  390. set_property(TARGET ISPCLib PROPERTY IMPORTED_LOCATION ${LIBISPSDK_PATH}/libISPC.a)
  391. #set_target_properties(ISPCLib PROPERTIES IMPORTED_LOCATION ${LIBISPSDK_PATH}/libISPC.a)
  392. #===== ISP_API =====
  393. add_library(ISP_APILib STATIC IMPORTED)
  394. #set_property(TARGET ISP_APILib PROPERTY IMPORTED_LOCATION ${SENSORAPI_LIB_DIRS}/libISP_API.a)
  395. set_property(TARGET ISP_APILib PROPERTY IMPORTED_LOCATION ${LIBISPSDK_PATH}/libISP_API.a)
  396. #set_target_properties(ISP_APILib PROPERTIES IMPORTED_LOCATION ${LIBISPSDK_PATH}/libISP_API.a)
  397. endif()
  398. endif ()
  399. include (common/UsePackage.cmake)
  400. if (BUILD_KERNEL_DRIVER)
  401. else()
  402. option(CI_LOG_LEVEL "Disable CI_LOG_LEVEL definition" OFF)
  403. endif()
  404. if (BUILD_CAPTUREINTERFACE OR BUILD_KERNEL_DRIVER OR BUILD_RELEASE_VERSION)
  405. include (CI/UsePackage.cmake)
  406. endif()
  407. if(BUILD_SENSORAPI OR BUILD_RELEASE_VERSION)
  408. include(sensorapi/UsePackage.cmake)
  409. endif()
  410. if(BUILD_MEDIA_CTRL OR BUILD_RELEASE_VERSION)
  411. include(Media_Control/UsePackage.cmake)
  412. endif()
  413. if (BUILD_ISPCONTROL OR BUILD_RELEASE_VERSION)
  414. include(ISP_Control/UsePackage.cmake)
  415. endif()
  416. if (BUILD_TEST_APPS)
  417. include(test_apps/UsePackage.cmake)
  418. endif()
  419. include (build/OverwriteFlags.cmake)
  420. include (build/GenKernel.cmake)
  421. include (build/RegdefFunctions.cmake)
  422. include (build/PerforceUtils.cmake)
  423. set(SAVE_LOCKS TRUE) # use pthread locks in sim_image common library
  424. #
  425. # the current directory can contain some cpack configuration
  426. #
  427. if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cpack_sources.cmake")
  428. include(cpack_sources.cmake)
  429. endif()
  430. if (NOT BUILD_RELEASE_VERSION)
  431. add_subdirectory(common)
  432. endif()
  433. if (BUILD_CAPTUREINTERFACE)
  434. add_subdirectory(CI)
  435. endif()
  436. if (BUILD_SENSORAPI)
  437. if (NOT BUILD_CAPTUREINTERFACE)
  438. if (NOT BUILD_RELEASE_VERSION)
  439. message(FATAL_ERROR "ISP Control requires building the Capture Interface (CI) check BUILD_CAPTUREINTERFACE flag.")
  440. endif()
  441. else()
  442. add_subdirectory(sensorapi)
  443. endif()
  444. endif()
  445. if (BUILD_MEDIA_CTRL)
  446. add_subdirectory(Media_Control)
  447. endif()
  448. if (BUILD_ISPCONTROL OR BUILD_API)
  449. if (NOT BUILD_CAPTUREINTERFACE)
  450. if (NOT BUILD_RELEASE_VERSION)
  451. message(FATAL_ERROR "ISP Control requires building the Capture Interface (CI) check BUILD_CAPTUREINTERFACE flag.")
  452. endif()
  453. else()
  454. add_subdirectory(ISP_Control)
  455. endif()
  456. endif()
  457. if (BUILD_TEST_APPS)
  458. add_subdirectory(test_apps)
  459. endif()
  460. if (BUILD_STARFIVE_APPS)
  461. add_subdirectory(startfive_apps)
  462. endif()
  463. #install(FILES changelist.txt DESTINATION ./)