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