linuxOS_MC3302/sdk/X-AIOS-LT00-V1.0.4/build/cmake/CMakeLists.txt
2026-01-30 16:53:24 +08:00

81 lines
2.3 KiB
CMake

cmake_minimum_required(VERSION 3.13)
set(XOS_ROOT $ENV{XOS_ROOT})
# Prevent CMake from testing the toolchain
set(CMAKE_C_COMPILER_FORCED 1)
set(CMAKE_CXX_COMPILER_FORCED 1)
project(xos-project
VERSION 1.0
DESCRIPTION "xos project"
LANGUAGES ASM C CXX
)
include(build/cmake/top.cmake)
find_package(Python COMPONENTS Interpreter Development)
# Python
message(STATUS "Found Python: ${Python_EXECUTABLE}")
message(STATUS "Python include directories: ${Python_INCLUDE_DIRS}")
message(STATUS "Python libraries: ${Python_LIBRARIES}")
set(EMPTY_FILE ${CMAKE_CURRENT_BINARY_DIR}/empty_file.c)
if(NOT EXISTS ${EMPTY_FILE})
file(WRITE ${EMPTY_FILE})
endif()
#######################
### create an main target
#######################
xos_declare_project(xos)
#######################
### create an main target
#######################
set(XOS_TARGET "qxosui")
if(NOT DEFINED CONFIG_XOS_USE_NO_QUAUI)
add_executable(${XOS_TARGET})
target_sources(${XOS_TARGET} PRIVATE ${EMPTY_FILE})
set_target_properties(${XOS_TARGET} PROPERTIES LINK_FLAGS "-Wl,--gc-sections -Wl,-Map=qxosui.map")
endif()
# 设置全局策略
cmake_policy(SET CMP0079 NEW)
# 允许静态库继承依赖
set(CMAKE_LINK_LIBRARIES_ONLY_TARGETS TRUE)
#######################
### create an interface target
#######################
set(XOS_INTERFACE_NAME "xos_interface")
add_library(${XOS_INTERFACE_NAME} INTERFACE)
# set(XOS_INTERFACE_INC PARENT_SCOPE)
list(APPEND XOS_INTERFACE_DEF )
include (build/cmake/definition.cmake)
target_compile_definitions(${XOS_INTERFACE_NAME} INTERFACE ${XOS_INTERFACE_DEF})
list(APPEND XOS_INTERFACE_INC )
include (build/cmake/include.cmake)
target_include_directories(${XOS_INTERFACE_NAME} INTERFACE ${XOS_INTERFACE_INC})
list(APPEND XOS_COMPILE_FLAGS)
list(APPEND XOS_INTERFACE_OPT)
include (build/cmake/options.cmake)
add_compile_options(${XOS_COMPILE_FLAGS})
target_link_options(${XOS_INTERFACE_NAME} INTERFACE ${XOS_INTERFACE_OPT})
include (build/cmake/complexity.cmake)
if(NOT DEFINED CONFIG_XOS_USE_NO_QUAUI)
#get_target_property(libs ${XOS_CURRENT_INTERFACE} associated_libs)
#add_dependencies(${XOS_TARGET} ${libs} ${XOS_CURRENT_CATCH_LIB})
target_link_libraries(${XOS_TARGET} ${XOS_INTERFACE_NAME}
${XOS_CURRENT_INTERFACE}
${XOS_CURRENT_CATCH_LIB}
${XOS_CURRENT_LIBRARY}
)
endif()