37
CMakeLists.txt
Normal file
37
CMakeLists.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
cmake_minimum_required(VERSION 3.30)
|
||||
|
||||
project(DCFG C)
|
||||
|
||||
set(CMAKE_C_STANDARD 23) # Would've done C99 but I need typeof (for now)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_C_EXTENSIONS OFF)
|
||||
|
||||
option(DCFG_BUILD_SHARED "Build DCFG as a shared library" ON)
|
||||
option(DCFG_BUILD_STATIC "Build DCFG as a static library" OFF)
|
||||
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
set(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
set(INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
|
||||
if(DCFG_BUILD_SHARED)
|
||||
add_library(${PROJECT_NAME} SHARED ${SRC_DIR}/dcfg.c)
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC ${INCLUDE_DIR})
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "dcfg")
|
||||
endif()
|
||||
|
||||
if(DCFG_BUILD_STATIC)
|
||||
add_library(${PROJECT_NAME}_static STATIC ${SRC_DIR}/dcfg.c)
|
||||
target_include_directories(${PROJECT_NAME}_static PUBLIC ${INCLUDE_DIR})
|
||||
target_link_libraries(${PROJECT_NAME}_static PRIVATE Threads::Threads)
|
||||
set_target_properties(${PROJECT_NAME}_static PROPERTIES OUTPUT_NAME "dcfg")
|
||||
endif()
|
||||
|
||||
if(DCFG_BUILD_SHARED)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION lib)
|
||||
endif()
|
||||
if(DCFG_BUILD_STATIC)
|
||||
install(TARGETS ${PROJECT_NAME}_static DESTINATION lib)
|
||||
endif()
|
||||
install(DIRECTORY ${INCLUDE_DIR}/ DESTINATION include)
|
Reference in New Issue
Block a user