mirror of https://github.com/arendst/Tasmota.git
39 lines
1.2 KiB
CMake
39 lines
1.2 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
|
|
project(Berry C)
|
|
set(CMAKE_C_STANDARD 99)
|
|
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
|
|
|
set(BERRY_COC ${CMAKE_CURRENT_SOURCE_DIR}/tools/coc/coc)
|
|
set(BERRY_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
|
set(BERRY_CONFIG_DIR default CACHE FILEPATH "The directory of berry_conf.h.")
|
|
set(BERRY_CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/${BERRY_CONFIG_DIR}/berry_conf.h)
|
|
set(BERRY_GENERATE ${CMAKE_CURRENT_SOURCE_DIR}/generate)
|
|
|
|
if (${CMAKE_HOST_WIN32})
|
|
set(BERRY_COC python ${BERRY_COC})
|
|
endif ()
|
|
|
|
file(MAKE_DIRECTORY generate)
|
|
|
|
# berry library
|
|
file(GLOB SOURCES src/*.c)
|
|
add_library(libberry ${SOURCES})
|
|
target_include_directories(libberry PUBLIC src ${BERRY_CONFIG_DIR})
|
|
|
|
add_custom_target(berry-coc
|
|
COMMAND ${BERRY_COC} -o ${BERRY_GENERATE} ${BERRY_SOURCE_DIR} -c ${BERRY_CONFIG}
|
|
DEPENDS ${SOURCES} COMMAND_EXPAND_LISTS
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
COMMENT "Generate coc objects"
|
|
)
|
|
add_dependencies(libberry berry-coc)
|
|
|
|
# berry default exe
|
|
file(GLOB SOURCES_EXE default/*.c)
|
|
add_executable(berry ${SOURCES_EXE})
|
|
target_link_libraries(berry PUBLIC libberry)
|