cmake_minimum_required(VERSION 3.0) project(jlv135_cli C) option(BUILD_FOR_JLV135 "Build for JLV135 firmware" ON) if (BUILD_FOR_JLV135) # Настройка кросс-компиляции set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_C_COMPILER arm-uclinuxfdpiceabi-gcc) set(CMAKE_STRIP arm-uclinuxfdpiceabi-strip) # Настройки компиляции set(CMAKE_C_FLAGS "-Os -fdata-sections -ffunction-sections -mno-unaligned-access") set(CMAKE_EXE_LINKER_FLAGS "-Wl,--gc-sections") endif() # Создание исполняемого файла add_executable(${PROJECT_NAME} src/jl_modbus/jl_modbus_config.c src/jl_modbus/jl_config.c src/jlv135_cli/jl_block.c src/jlv135_cli/jl_block_modbus.c src/jlv135_cli/jl_block_wifi.c src/jlv135_cli/jl_block_display.c src/jlv135_cli/jl_block_feature.c src/jlv135_cli/jl_block_datatime.c src/jlv135_cli/jl_block_sensor.c src/jlv135_cli/jl_block_secure.c src/jlv135_cli/jl_block_service.c src/jlv135_cli/main.c) # Настройка библиотек target_link_libraries(${CMAKE_PROJECT_NAME} pthread) # Добавление каталогов для поиска заголовков target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE inc) if (BUILD_FOR_JLV135) # Опция strip if(CMAKE_BUILD_TYPE STREQUAL "Release") add_custom_command( TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_STRIP} $ COMMENT "Stripping debug symbols (Release only)" DEPENDS $ ) endif() endif()