hunting/CMakeLists.txt
2023-12-01 20:18:24 -08:00

128 lines
5.2 KiB
CMake
Executable File

cmake_minimum_required(VERSION 3.5.1)
include(build/global_config.cmake)
project(fancycode)
# set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
message("platform = ${TARGET_PLATFORM}")
message("platform PATH = ${PLATFORM_PATH}")
# Gdb debug
include(build/sdk_config.cmake)
# 查看是工具链支持情况
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX14)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
# find the clang-tidy tools
unset(CLANG_TIDY_EXE CACHE)
unset(CLANG_TIDY_FIND CACHE)
if ("${CLANG_TIDY_SUPPORT}" MATCHES "true")
find_program(CLANG_TIDY_FIND NAMES clang-tidy PATHS ${LLVM_PATH}/build/bin)
if(CLANG_TIDY_FIND)
message(STATUS "clang-tidy found: ${CLANG_TIDY_FIND}")
# set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXE}" "-header-filter=no.h -system-headers=no.h -checks=modernize-use-override")
set(CLANG_TIDY_EXE ${CLANG_TIDY_FIND} CACHE STRING INTERNAL)
message("CLANG_TIDY_EXE = ${CLANG_TIDY_EXE}")
else()
# message(FATAL_ERROR "See ${CMAKE_SOURCE_DIR_IPCSDK}/doc.")
message(FATAL_ERROR "You set support clang-tidy, but clang-tidy not found.
Check path ${LLVM_PATH}/build/bin, weather clang-tidy exist.
How to install tools?
See ${IPC_SDK_PATH}/doc/clang-tidy_user_guide.md
How to disable clang-tidy tool?
Modify: set(CLANG_TIDY_SUPPORT \"false\")
See:${IPC_SDK_PATH}/builde/global_config.cmake")
endif()
endif()
# find the clang-format tools
unset(CLANG_FORMAT_EXE CACHE)
unset(CLANG_FORMAT_FIND CACHE)
if ("${CLANG_FORMAT_SUPPORT}" MATCHES "true")
find_program(CLANG_FORMAT_FIND NAMES clang-format PATHS ${LLVM_PATH}/build/bin)
if(CLANG_FORMAT_FIND)
message(STATUS "clang-format found: ${CLANG_FORMAT_FIND}")
set(CLANG_FORMAT_EXE ${CLANG_FORMAT_FIND} CACHE STRING INTERNAL)
message("CLANG_FORMAT_EXE = ${CLANG_FORMAT_EXE}")
else()
message(FATAL_ERROR "You set support clang-format, but clang-format not found.
Check path ${LLVM_PATH}/build/bin, weather clang-format exist.
How to install tools?
See ${IPC_SDK_PATH}/doc/clang-tidy_user_guide.md
How to disable clang-format tool?
Modify: set(CLANG_FORMAT_SUPPORT \"false\")
See:${IPC_SDK_PATH}/builde/global_config.cmake")
endif()
endif()
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
# execute_process(COMMAND sh build_lvgl_for_cmakelist.sh ${TARGET_PLATFORM} ${CMAKE_SOURCE_DIR_IPCSDK} WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/lvglLinux-x86/)
# add_subdirectory(external/lvglLinux-x86)
endif()
#Add macro definition
# add_definitions(-DCONFIG_FILE_PATH=\"${CONFIG_FILE_PATH}\")
# Config message of main thread
unset(MAIN_INCLUDE_PATH CACHE)
set(MAIN_INCLUDE_PATH "" CACHE STRING INTERNAL)
unset(MAIN_SRC_FILE CACHE)
set(MAIN_SRC_FILE "" CACHE STRING INTERNAL)
unset(MAIN_LINK_LIB CACHE)
set(MAIN_LINK_LIB "" CACHE STRING INTERNAL)
# Config message for test code.
unset(TEST_LINK_LIB CACHE)
set(TEST_LINK_LIB "" CACHE STRING INTERNAL)
unset(TEST_LINUX_MOCK CACHE)
set(TEST_LINUX_MOCK "" CACHE STRING INTERNAL)
# if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
set(TEST_LINK_LIB "testUtils" CACHE STRING INTERNAL FORCE)
# endif()
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
# set(TEST_LINUX_MOCK "-Wl,--wrap=fopen,--wrap=fprintf_gpio,--wrap=fprintf_dir" CACHE STRING INTERNAL FORCE)
# set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=tcgetattr" CACHE STRING INTERNAL FORCE)
# set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=tcsetattr" CACHE STRING INTERNAL FORCE)
# set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=gethostbyname" CACHE STRING INTERNAL FORCE)
# set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=connect" CACHE STRING INTERNAL FORCE)
# set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=socket" CACHE STRING INTERNAL FORCE)
# set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=select" CACHE STRING INTERNAL FORCE)
# set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=linux_open" CACHE STRING INTERNAL FORCE)
# set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=linux_read" CACHE STRING INTERNAL FORCE)
# set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=linux_write" CACHE STRING INTERNAL FORCE)
# set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=linux_close" CACHE STRING INTERNAL FORCE)
# set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=linux_fclose" CACHE STRING INTERNAL FORCE)
# set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=linux_fread" CACHE STRING INTERNAL FORCE)
# set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=linux_fcntl" CACHE STRING INTERNAL FORCE)
endif()
# 添加编译目录
add_subdirectory(external)
add_subdirectory(application)
add_subdirectory(middleware)
add_subdirectory(utils)
add_subdirectory(hal)
# add_subdirectory(customization)
string(COMPARE EQUAL "${PLATFORM_PATH}" "" value)
message("The platform path is \"${PLATFORM_PATH}\".")
if (value EQUAL 0) #变量被设置了
message("build chip board code.")
# add_subdirectory(${PLATFORM_PATH})
# aux_source_directory(${PLATFORM_PATH})
endif()
message("MAIN_INCLUDE_PATH = ${MAIN_INCLUDE_PATH}")
message("MAIN_SRC_FILE = ${MAIN_SRC_FILE}")
message("MAIN_LINK_LIB = ${MAIN_LINK_LIB}")
add_subdirectory(test)
# include(build/global_config.cmake)