mirror of
https://gitee.com/jiuyilian/embedded-framework.git
synced 2025-01-06 10:16:51 -05:00
Add cmake build.
This commit is contained in:
parent
5d34ede653
commit
50af2a429a
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
.vscode
|
||||
cmake-shell-linux/
|
||||
external/gtest/googletest-release-1.11.0/
|
||||
external/libconfig/libconfig-1.7.3/
|
||||
out/
|
64
CMakeLists.txt
Normal file
64
CMakeLists.txt
Normal file
|
@ -0,0 +1,64 @@
|
|||
cmake_minimum_required(VERSION 3.5.1)
|
||||
include(build/global_config.cmake)
|
||||
|
||||
project(app)
|
||||
|
||||
message("platform = ${TARGET_PLATFORM}")
|
||||
message("platform PATH = ${PLATFORM_PATH}")
|
||||
|
||||
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
|
||||
include(build/cmake/toolchain/linux.toolchain.cmake)
|
||||
endif()
|
||||
|
||||
|
||||
#gdb debug
|
||||
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
|
||||
message("---------------------------Debug mode.-----------------------")
|
||||
SET(CMAKE_BUILD_TYPE "Debug")
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
|
||||
# asan
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=leak -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=leak -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined")
|
||||
endif()
|
||||
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")?
|
||||
|
||||
#编译脚本确定具体平台或者芯片型号,定义宏来进行代码编译
|
||||
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
|
||||
add_definitions("-DPLATFORM_LINUX")
|
||||
endif()
|
||||
if($ENV{BUILD_COVERAGE} MATCHES "true")
|
||||
message("you choose to build gcno file")
|
||||
add_definitions("-fprofile-arcs")
|
||||
add_definitions("-ftest-coverage")
|
||||
endif()
|
||||
|
||||
#查看是工具链支持情况
|
||||
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)
|
||||
|
||||
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
|
||||
# execute_process(COMMAND sh build_lvgl_for_cmakelist.sh ${TARGET_PLATFORM} ${CMAKE_SOURCE_DIR} WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/lvglLinux-x86/)
|
||||
# add_subdirectory(external/lvglLinux-x86)
|
||||
endif()
|
||||
|
||||
#添加编译目录
|
||||
add_subdirectory(application)
|
||||
add_subdirectory(component)
|
||||
add_subdirectory(hal)
|
||||
add_subdirectory(test)
|
||||
|
||||
|
||||
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})
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
|
18
Makefile
Normal file
18
Makefile
Normal file
|
@ -0,0 +1,18 @@
|
|||
gmock:
|
||||
$(MAKE) -C external/gtest all
|
||||
gmock_clean:
|
||||
$(MAKE) -C external/gtest clean
|
||||
cmake:
|
||||
$(MAKE) -C build/cmake all
|
||||
cmake_clean:
|
||||
$(MAKE) -C build/cmake clean
|
||||
all:cmake
|
||||
$(MAKE) -C cmake-shell-linux all
|
||||
clean:
|
||||
$(MAKE) -C cmake-shell-linux clean
|
||||
@rm -rf external/gtest/googletest-release-1.11.0 \
|
||||
external/lvglLinux-x86/lv_sim_vscode_sdl \
|
||||
out \
|
||||
cmake-shell-linux
|
||||
|
||||
|
3
build/README.md
Normal file
3
build/README.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
# cmake编译配置
|
||||
## 目录
|
||||
./toolchain:配置编译工具链
|
8
build/cmake/Makefile
Normal file
8
build/cmake/Makefile
Normal file
|
@ -0,0 +1,8 @@
|
|||
all:
|
||||
@mkdir -p ../../cmake-shell-linux;\
|
||||
cd ../../cmake-shell-linux;\
|
||||
pwd;\
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE="./build/cmake/toolchain/linux.toolchain.cmake" ..;\
|
||||
cd ..
|
||||
clean:
|
||||
rm -rf ../../cmake-shell-linux
|
2
build/cmake/README.md
Normal file
2
build/cmake/README.md
Normal file
|
@ -0,0 +1,2 @@
|
|||
# cmake
|
||||
|
32
build/cmake/toolchain/linux.toolchain.cmake
Normal file
32
build/cmake/toolchain/linux.toolchain.cmake
Normal file
|
@ -0,0 +1,32 @@
|
|||
|
||||
INCLUDE(CMakeForceCompiler)
|
||||
|
||||
set(CMAKE_C_COMPILER gcc)
|
||||
set(CMAKE_CXX_COMPILER g++)
|
||||
|
||||
# path to compiler and utilities
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
||||
|
||||
|
||||
|
||||
# Name of the target platform
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_PROCESSOR arm)
|
||||
|
||||
# Version of the system
|
||||
set(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
|
||||
add_definitions(-Wall -O2 -Os)
|
||||
add_definitions(-Wno-unused-local-typedefs)
|
||||
add_definitions(-Wstrict-aliasing -Wwrite-strings)
|
||||
|
||||
|
||||
set(TOOLCHAIN_NAME arm-linux-gnueabihf)
|
||||
|
||||
|
||||
set(TARGET_PLATFORM "linux")
|
||||
set(AT_COMMAND_PATH "${CMAKE_SOURCE_DIR}/at-command/eg91")
|
16
build/global_config.cmake
Normal file
16
build/global_config.cmake
Normal file
|
@ -0,0 +1,16 @@
|
|||
# 根据实际平台修改 TARGET_PLATFORM 的定义
|
||||
|
||||
# set(TARGET_PLATFORM "linux")
|
||||
set(DEFINE_LINUX "linux")
|
||||
set(DEFINE_SIGMASTART_333DE "sigmastart_333DE")
|
||||
|
||||
set(EXEC_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/out/bin")
|
||||
set(LIBS_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/out/libs")
|
||||
set(TEST_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/out/test")
|
||||
|
||||
set(PROJECT_ROOT_PATH "${CMAKE_SOURCE_DIR}")
|
||||
set(APPLICATION_SOURCE_PATH "${CMAKE_SOURCE_DIR}/application")
|
||||
set(COMPONENT_SOURCE_PATH "${CMAKE_SOURCE_DIR}/component")
|
||||
set(HAL_SOURCE_PATH "${CMAKE_SOURCE_DIR}/hal")
|
||||
set(TEST_SOURCE_PATH "${CMAKE_SOURCE_DIR}/test")
|
||||
set(EXTERNAL_SOURCE_PATH "${CMAKE_SOURCE_DIR}/external")
|
14
build/independent_source.cmake
Normal file
14
build/independent_source.cmake
Normal file
|
@ -0,0 +1,14 @@
|
|||
|
||||
# This config file is only for independent source files.
|
||||
|
||||
# Never leave over any warning in independt project.
|
||||
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -Wextra")
|
||||
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wextra")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror")
|
||||
|
||||
# For build coverage report in linux-x86
|
||||
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
|
||||
endif()
|
0
doc/design.md.txt
Normal file
0
doc/design.md.txt
Normal file
Loading…
Reference in New Issue
Block a user