blob: f84abc92ff011893702d49827d9fb8d6c0a6f4b6 [file] [log] [blame]
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +05301cmake_minimum_required(VERSION 3.13)
2
3project(hal)
4
5set(esp_idf_dir ${IDF_PATH})
6
7set(SRC_DIR ${CMAKE_CURRENT_LIST_DIR}/src)
8set(INCLUDE_DIRS
9 ${CMAKE_CURRENT_LIST_DIR}/include
Almir Okatod5320292021-06-18 02:00:40 -030010 ${CMAKE_CURRENT_LIST_DIR}/include/${MCUBOOT_TARGET}
11 )
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053012
13list(APPEND INCLUDE_DIRS
Almir Okato712fdb52021-08-06 10:22:56 -030014 ${esp_idf_dir}/components/${MCUBOOT_ARCH}/include
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053015 ${esp_idf_dir}/components/esp_common/include
16 ${esp_idf_dir}/components/esp_rom/include
Almir Okatod5320292021-06-18 02:00:40 -030017 ${esp_idf_dir}/components/esp_rom/include/${MCUBOOT_TARGET}
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053018 ${esp_idf_dir}/components/spi_flash/include
19 ${esp_idf_dir}/components/spi_flash/private_include
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053020 ${esp_idf_dir}/components/soc/${MCUBOOT_TARGET}/include
21 ${esp_idf_dir}/components/${MCUBOOT_TARGET}/include
22 ${esp_idf_dir}/components/soc/include
23 ${esp_idf_dir}/components/esp_hw_support/include
24 ${esp_idf_dir}/components/hal/${MCUBOOT_TARGET}/include
Almir Okatod5320292021-06-18 02:00:40 -030025 ${esp_idf_dir}/components/hal/${MCUBOOT_TARGET}/include/hal
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053026 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}
27 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/private_include
28 ${esp_idf_dir}/components/bootloader_support/include
29 ${esp_idf_dir}/components/bootloader_support/include_bootloader
30 ${esp_idf_dir}/components/hal/include
31 ${esp_idf_dir}/components/efuse/include
32 ${esp_idf_dir}/components/efuse/${MCUBOOT_TARGET}/include
33 )
Almir Okato712fdb52021-08-06 10:22:56 -030034
35if("${MCUBOOT_ARCH}" STREQUAL "xtensa")
36 list(APPEND INCLUDE_DIRS
37 ${esp_idf_dir}/components/${MCUBOOT_ARCH}/${MCUBOOT_TARGET}/include
38 )
39endif()
40
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053041set(hal_srcs
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053042 ${SRC_DIR}/bootloader_wdt.c
Almir Okatod5320292021-06-18 02:00:40 -030043 ${SRC_DIR}/${MCUBOOT_TARGET}/bootloader_init.c
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053044 ${esp_idf_dir}/components/hal/mpu_hal.c
45 ${esp_idf_dir}/components/bootloader_support/src/bootloader_flash.c
46 ${esp_idf_dir}/components/bootloader_support/src/bootloader_flash_config_${MCUBOOT_TARGET}.c
47 ${esp_idf_dir}/components/bootloader_support/src/bootloader_clock_init.c
48 ${esp_idf_dir}/components/bootloader_support/src/bootloader_efuse_${MCUBOOT_TARGET}.c
49 ${esp_idf_dir}/components/bootloader_support/src/bootloader_panic.c
50 ${esp_idf_dir}/components/bootloader_support/src/bootloader_mem.c
51 ${esp_idf_dir}/components/spi_flash/${MCUBOOT_TARGET}/spi_flash_rom_patch.c
52 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_init.c
53 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_time.c
54 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_clk.c
55 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_clk_init.c
56 ${esp_idf_dir}/components/hal/wdt_hal_iram.c
57 ${esp_idf_dir}/components/esp_hw_support/cpu_util.c
58 ${esp_idf_dir}/components/esp_rom/patches/esp_rom_uart.c
59 ${esp_idf_dir}/components/${MCUBOOT_TARGET}/clk.c
60 )
61
62set(CFLAGS
63 "-nostdlib"
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053064 "-Wno-frame-address"
65 "-Wall"
66 "-Wextra"
67 "-W"
68 "-Wwrite-strings"
69 "-Wlogical-op"
70 "-Wshadow"
71 "-ffunction-sections"
72 "-fdata-sections"
73 "-fstrict-volatile-bitfields"
74 "-Werror=all"
75 "-Wno-error=unused-function"
76 "-Wno-error=unused-but-set-variable"
77 "-Wno-error=unused-variable"
78 "-Wno-error=deprecated-declarations"
79 "-Wno-unused-parameter"
80 "-Wno-sign-compare"
81 "-ggdb"
82 "-Os"
83 "-D_GNU_SOURCE"
84 "-std=gnu99"
85 "-Wno-old-style-declaration"
86 "-Wno-implicit-int"
87 )
88
89set(LDFLAGS
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053090 "-Wno-frame-address"
91 "-Wl,--cref"
92 "-Wl,--Map=${APP_NAME}.map"
93 "-fno-rtti"
94 "-fno-lto"
95 "-Wl,--gc-sections"
96 "-Wl,--undefined=uxTopUsedPriority"
97 "-lm"
98 "-lgcc"
99 "-lgcov"
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +0530100 )
101
Almir Okato712fdb52021-08-06 10:22:56 -0300102if (("${MCUBOOT_TARGET}" STREQUAL "xtensa"))
103 list(APPEND CFLAGS
104 "-mlongcalls"
105 )
106 list(APPEND LDFLAGS
107 "-mlongcalls"
108 )
109endif()
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +0530110
111set_source_files_properties(
112 ${esp_idf_dir}/components/bootloader_support/src/bootloader_flash.c
113 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_clk_init.c
Almir Okatod5320292021-06-18 02:00:40 -0300114 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_init.c
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +0530115 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_clk.c
116 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_time.c
117 PROPERTIES COMPILE_FLAGS
Almir Okato712fdb52021-08-06 10:22:56 -0300118 "-Wno-unused-variable"
119 )
120
121set(LINKER_SCRIPTS
122 -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.ld
123 -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.libgcc.ld
124 -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.api.ld
125 -T${esp_idf_dir}/components/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.peripherals.ld
126 )
127
128include(${CMAKE_CURRENT_LIST_DIR}/include/${MCUBOOT_TARGET}/${MCUBOOT_TARGET}.cmake)
129
130add_library(hal STATIC ${hal_srcs} ${INCLUDE_DIRS})
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +0530131
132target_include_directories(
133 hal
134 PUBLIC
135 ${INCLUDE_DIRS}
136 )
137
138target_compile_options(
139 hal
140 PUBLIC
141 ${CFLAGS}
142 )
143
Almir Okatod5320292021-06-18 02:00:40 -0300144target_link_libraries(
145 hal
146 PUBLIC
147 ${LDFLAGS}
148 ${LINKER_SCRIPTS}
149 )