forked from espressif/esp-at
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
109 lines (84 loc) · 3.82 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# (Automatically converted from project Makefile by convert_to_cmake.py.)
# The following lines of boilerplate have to be in your project's CMakeLists
# in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.5)
if (NOT DEFINED ENV{ESP_AT_PROJECT_PLATFORM})
set(ENV{ESP_AT_PROJECT_PLATFORM} PLATFORM_ESP32)
endif()
if (NOT DEFINED ENV{ESP_AT_MODULE_NAME})
set(ENV{ESP_AT_MODULE_NAME} WROOM-32)
endif()
set(IDF_PATH ${CMAKE_SOURCE_DIR}/esp-idf)
string(TOLOWER $ENV{ESP_AT_MODULE_NAME} LOWER_NAME)
set(ESP_AT_MODULE_CONFIG_DIR ${CMAKE_SOURCE_DIR}/module_config/module_${LOWER_NAME})
if (NOT EXISTS "${ESP_AT_MODULE_CONFIG_DIR}")
string(SUBSTRING "$ENV{ESP_AT_PROJECT_PLATFORM}" 9 31 PLATFORM_NAME) # remove PLATFORM_
string(TOLOWER ${PLATFORM_NAME} LOWER_NAME)
set(ESP_AT_MODULE_CONFIG_DIR ${CMAKE_SOURCE_DIR}/module_config/module_${LOWER_NAME}_default )
endif()
SET(ENV{ESP_AT_PROJECT_PATH} ${CMAKE_SOURCE_DIR} )
if (NOT DEFINED SILENCE)
if (DEFINED ENV{SILENCE})
set(SILENCE 1)
else()
set(SILENCE 0)
endif()
endif()
if (${SILENCE} EQUAL 1)
set(SDKCONFIG_DEFAULTS ${ESP_AT_MODULE_CONFIG_DIR}/sdkconfig_silence.defaults)
else()
set(SDKCONFIG_DEFAULTS ${ESP_AT_MODULE_CONFIG_DIR}/sdkconfig.defaults)
endif()
if(NOT DEFINED ENV{IDF_PATH})
SET(ENV{IDF_PATH} ${CMAKE_SOURCE_DIR}/esp-idf )
message(STATUS $ENV{IDF_PATH})
endif()
execute_process(COMMAND git rev-parse --short HEAD
OUTPUT_VARIABLE ESP_AT_PROJECT_COMMIT_ID
OUTPUT_STRIP_TRAILING_WHITESPACE)
add_compile_options("-DESP_AT_PROJECT_COMMIT_ID=\"${ESP_AT_PROJECT_COMMIT_ID}\"")
execute_process(COMMAND sed -n /branch:/p ${ESP_AT_MODULE_CONFIG_DIR}/IDF_VERSION
OUTPUT_VARIABLE idf_branch
OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REPLACE "branch:" "" esp_at_idf_branch ${idf_branch})
execute_process(COMMAND sed -n /commit:/p ${ESP_AT_MODULE_CONFIG_DIR}/IDF_VERSION
OUTPUT_VARIABLE idf_commit
OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REPLACE "commit:" "" esp_at_idf_commit ${idf_commit})
execute_process(COMMAND sed -n /repository:/p ${ESP_AT_MODULE_CONFIG_DIR}/IDF_VERSION
OUTPUT_VARIABLE idf_repository
OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REPLACE "repository:" "" esp_at_idf_repository ${idf_repository})
if(NOT IS_DIRECTORY ${IDF_PATH})
execute_process(COMMAND git clone -b ${esp_at_idf_branch} ${esp_at_idf_repository} ${IDF_PATH})
endif()
execute_process(WORKING_DIRECTORY ${IDF_PATH}
COMMAND git rev-parse HEAD
OUTPUT_VARIABLE current_idf_commit
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT ${current_idf_commit} EQUAL ${esp_at_idf_commit})
execute_process(WORKING_DIRECTORY ${IDF_PATH}
COMMAND git checkout ${esp_at_idf_branch})
execute_process(WORKING_DIRECTORY ${IDF_PATH}
COMMAND git pull)
execute_process(WORKING_DIRECTORY ${IDF_PATH}
COMMAND git checkout ${esp_at_idf_commit})
execute_process(WORKING_DIRECTORY ${IDF_PATH}
COMMAND git submodule update --init --recursive )
endif()
include(${IDF_PATH}/tools/cmake/project.cmake)
project(esp-at)
add_custom_target(factory_bin ALL DEPENDS customized_bin)
add_custom_command(TARGET factory_bin
POST_BUILD
COMMAND mkdir -p $ENV{ESP_AT_PROJECT_PATH}/build/factory
COMMAND ${PYTHON} $ENV{ESP_AT_PROJECT_PATH}/tools/esp_at_factory_bin_combine.py
--module_name $ENV{ESP_AT_MODULE_NAME}
--bin_directory $ENV{ESP_AT_PROJECT_PATH}/build
--flash_mode ${CONFIG_ESPTOOLPY_FLASHMODE}
--flash_size ${CONFIG_ESPTOOLPY_FLASHSIZE}
--flash_speed ${CONFIG_ESPTOOLPY_FLASHFREQ}
--parameter_file $ENV{ESP_AT_PROJECT_PATH}/build/factory/factory_parameter.log
--download_config $ENV{ESP_AT_PROJECT_PATH}/build/flash_project_args
COMMENT "Create factory bin..."
)