26 lines
785 B
CMake
26 lines
785 B
CMake
cmake_minimum_required(VERSION 3.13)
|
|
project(sync C)
|
|
|
|
set(CMAKE_C_STANDARD 99)
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
|
|
|
include_directories(include)
|
|
|
|
# ---- Source Library (exclude main.c) ----
|
|
file(GLOB SYNC_LIB_SRC src/*.c)
|
|
list(REMOVE_ITEM SYNC_LIB_SRC "${CMAKE_SOURCE_DIR}/src/main.c")
|
|
add_library(sync_lib STATIC ${SYNC_LIB_SRC})
|
|
|
|
# ---- sync executable ----
|
|
add_executable(sync src/main.c)
|
|
target_link_libraries(sync PRIVATE sync_lib)
|
|
|
|
# ---- Tests ----
|
|
file(GLOB TEST_FILES test/test_*.c)
|
|
foreach(TEST_FILE ${TEST_FILES})
|
|
get_filename_component(TEST_NAME ${TEST_FILE} NAME_WE)
|
|
add_executable(${TEST_NAME} ${TEST_FILE})
|
|
target_link_libraries(${TEST_NAME} PRIVATE sync_lib)
|
|
target_include_directories(${TEST_NAME} PRIVATE include)
|
|
endforeach()
|