xref: /aosp_15_r20/external/libwebsockets/contrib/cross-esp32.cmake (revision 1c60b9aca93fdbc9b5f19b2d2194c91294b22281)
1*1c60b9acSAndroid Build Coastguard Worker#
2*1c60b9acSAndroid Build Coastguard Worker# CMake Toolchain file for crosscompiling on ARM.
3*1c60b9acSAndroid Build Coastguard Worker#
4*1c60b9acSAndroid Build Coastguard Worker# This can be used when running cmake in the following way:
5*1c60b9acSAndroid Build Coastguard Worker#  cd build/
6*1c60b9acSAndroid Build Coastguard Worker#  cmake .. -DCMAKE_TOOLCHAIN_FILE=../cross-arm-linux-gnueabihf.cmake
7*1c60b9acSAndroid Build Coastguard Worker#
8*1c60b9acSAndroid Build Coastguard Worker
9*1c60b9acSAndroid Build Coastguard Worker# Target operating system name.
10*1c60b9acSAndroid Build Coastguard Workerset(CMAKE_SYSTEM_NAME Linux)
11*1c60b9acSAndroid Build Coastguard Worker
12*1c60b9acSAndroid Build Coastguard Worker# assumed these are set up on the $PATH
13*1c60b9acSAndroid Build Coastguard Workerset(TC xtensa-esp32-elf)
14*1c60b9acSAndroid Build Coastguard Worker
15*1c60b9acSAndroid Build Coastguard Workerset(CMAKE_C_COMPILER	"${TC}-gcc${EXECUTABLE_EXT}")
16*1c60b9acSAndroid Build Coastguard Workerset(CMAKE_AR		"${TC}-ar${EXECUTABLE_EXT}")
17*1c60b9acSAndroid Build Coastguard Workerset(CMAKE_RANLIB	"${TC}-ranlib${EXECUTABLE_EXT}")
18*1c60b9acSAndroid Build Coastguard Workerset(CMAKE_LINKER	"${TC}-ld${EXECUTABLE_EXT}")
19*1c60b9acSAndroid Build Coastguard Worker
20*1c60b9acSAndroid Build Coastguard Worker#
21*1c60b9acSAndroid Build Coastguard Worker# Different build system distros set release optimization level to different
22*1c60b9acSAndroid Build Coastguard Worker# things according to their local policy, eg, Fedora is -O2 and Ubuntu is -O3
23*1c60b9acSAndroid Build Coastguard Worker# here.  Actually the build system's local policy is completely unrelated to
24*1c60b9acSAndroid Build Coastguard Worker# our desire for cross-build release optimization policy for code built to run
25*1c60b9acSAndroid Build Coastguard Worker# on a completely different target than the build system itself.
26*1c60b9acSAndroid Build Coastguard Worker#
27*1c60b9acSAndroid Build Coastguard Worker# Since this goes last on the compiler commandline we have to override it to a
28*1c60b9acSAndroid Build Coastguard Worker# sane value for cross-build here.  Notice some gcc versions enable broken
29*1c60b9acSAndroid Build Coastguard Worker# optimizations with -O3.
30*1c60b9acSAndroid Build Coastguard Worker#
31*1c60b9acSAndroid Build Coastguard Workerif (CMAKE_BUILD_TYPE MATCHES RELEASE OR CMAKE_BUILD_TYPE MATCHES Release OR CMAKE_BUILD_TYPE MATCHES release)
32*1c60b9acSAndroid Build Coastguard Worker	set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2")
33*1c60b9acSAndroid Build Coastguard Worker	set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2")
34*1c60b9acSAndroid Build Coastguard Workerendif()
35*1c60b9acSAndroid Build Coastguard Worker
36*1c60b9acSAndroid Build Coastguard WorkerSET(CMAKE_C_FLAGS "-nostdlib -Wall -Werror \
37*1c60b9acSAndroid Build Coastguard Worker	-I${BUILD_DIR_BASE}/include \
38*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/newlib/platform_include \
39*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/mdns/include \
40*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/heap/include \
41*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/driver/include \
42*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/spi_flash/include \
43*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/nvs_flash/include \
44*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/tcpip_adapter/include \
45*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/lwip/include/lwip/posix \
46*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/lwip/include/lwip \
47*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/lwip/include/lwip/port \
48*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/esp32/include/ \
49*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/bootloader_support/include/ \
50*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/app_update/include/ \
51*1c60b9acSAndroid Build Coastguard Worker	-I$(IDF_PATH)/components/soc/esp32/include/ \
52*1c60b9acSAndroid Build Coastguard Worker	-I$(IDF_PATH)/components/soc/include/ \
53*1c60b9acSAndroid Build Coastguard Worker	-I$(IDF_PATH)/components/vfs/include/ \
54*1c60b9acSAndroid Build Coastguard Worker	${LWS_C_FLAGS} -Os \
55*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/nvs_flash/test_nvs_host \
56*1c60b9acSAndroid Build Coastguard Worker	-I${IDF_PATH}/components/freertos/include" CACHE STRING "" FORCE)
57*1c60b9acSAndroid Build Coastguard Worker
58*1c60b9acSAndroid Build Coastguard Worker# Where to look for the target environment. (More paths can be added here)
59*1c60b9acSAndroid Build Coastguard Workerset(CMAKE_FIND_ROOT_PATH "${CROSS_PATH}")
60*1c60b9acSAndroid Build Coastguard Worker
61*1c60b9acSAndroid Build Coastguard Worker# Adjust the default behavior of the FIND_XXX() commands:
62*1c60b9acSAndroid Build Coastguard Worker# search programs in the host environment only.
63*1c60b9acSAndroid Build Coastguard Workerset(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
64*1c60b9acSAndroid Build Coastguard Worker
65*1c60b9acSAndroid Build Coastguard Worker# Search headers and libraries in the target environment only.
66*1c60b9acSAndroid Build Coastguard Workerset(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
67*1c60b9acSAndroid Build Coastguard Workerset(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
68*1c60b9acSAndroid Build Coastguard Worker
69