1+ # Copyright (c) 2025 Dmitry Ponomarev <ponomarevda96@gmail.com>
2+ #
3+ # This Source Code Form is subject to the terms of the Mozilla Public
4+ # License, v. 2.0. If a copy of the MPL was not distributed with this
5+ # file, You can obtain one at https://mozilla.org/MPL/2.0/.
6+
7+ cmake_minimum_required (VERSION 3.22)
8+ project (libparams VERSION 1.0 LANGUAGES CXX C)
9+
10+ if (LIBPARAMS_PLATFORM STREQUAL "stm32f103" )
11+ elseif (LIBPARAMS_PLATFORM STREQUAL "stm32g0b1" )
12+ elseif (LIBPARAMS_PLATFORM STREQUAL "ubuntu" )
13+ else ()
14+ message (SEND_ERROR "LIBPARAMS_PLATFORM is not specified! Options: stm32f103, stm32g0b1, ubuntu." )
15+ endif ()
16+
17+ execute_process (
18+ COMMAND ${ROOT_DIR} /scripts/generate_default_params.py
19+ --out-dir ${CMAKE_CURRENT_BINARY_DIR} /params
20+ -f ${TESTS_DIR} /params/params.c
21+ --out-file-name "init_params"
22+ RESULT_VARIABLE ret
23+ )
24+ if (NOT ret EQUAL 0)
25+ message ( FATAL_ERROR "Default Params Generator has been failed. Abort." )
26+ endif ()
27+ set (LIBPARAMS_PARAMS_DIR="${CMAKE_CURRENT_BINARY_DIR} /params" )
28+ add_definitions (-DLIBPARAMS_PARAMS_DIR="${CMAKE_CURRENT_BINARY_DIR} /params" )
29+
30+ FILE (GLOB libparamsPlatformSpecificSrc
31+ ${CMAKE_CURRENT_LIST_DIR} /platform_specific/${LIBPARAMS_PLATFORM} /*.c*
32+ )
33+
34+ FILE (GLOB libparamsGeneratedParams
35+ ${LIBPARAMS_GENERATED_PARAMS_DIR} /*.c*
36+ ${LIBPARAMS_GENERATED_PARAMS_DIR} /*.cpp*
37+ )
38+
39+ add_library (${PROJECT_NAME} STATIC
40+ src/rom.c
41+ src/storage.c
42+ ${libparamsPlatformSpecificSrc}
43+ ${libparamsGeneratedParams}
44+ )
45+
46+ add_library (${PROJECT_NAME} ::${PROJECT_NAME} ALIAS ${PROJECT_NAME} )
47+
48+ target_include_directories (${PROJECT_NAME}
49+ PUBLIC
50+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR} /include >
51+ $<BUILD_INTERFACE:${LIBPARAMS_GENERATED_PARAMS_DIR} >
52+ $<INSTALL_INTERFACE:${CMAKE_CURRENT_LIST_DIR} /include >
53+ $<INSTALL_INTERFACE:${LIBPARAMS_GENERATED_PARAMS_DIR} >
54+ PRIVATE
55+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR} /include >
56+ )
0 commit comments