Files
stethoscope/CMakeLists.txt

67 lines
1.6 KiB
CMake

cmake_minimum_required(VERSION 3.10)
project(stethoscope
VERSION 1.0
LANGUAGES C)
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS ON)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "RelWithDebInfo")
endif()
find_package(Threads REQUIRED)
find_package(PkgConfig QUIET)
add_executable(${PROJECT_NAME}
src/main.c
deps/inih/ini.c
deps/vector/vector.c
)
if(PkgConfig_FOUND)
pkg_check_modules(MICROHTTPD REQUIRED libmicrohttpd)
pkg_check_modules(MXML REQUIRED mxml)
target_include_directories(${PROJECT_NAME} PRIVATE
${MICROHTTPD_INCLUDE_DIRS}
${MXML_INCLUDE_DIRS}
)
target_link_libraries(${PROJECT_NAME} PRIVATE
${MICROHTTPD_LIBRARIES}
${MXML_LIBRARIES}
)
else()
find_path(MICROHTTPD_INCLUDE_DIR microhttpd.h)
find_library(MICROHTTPD_LIBRARY NAMES microhttpd libmicrohttpd)
if(NOT MICROHTTPD_INCLUDE_DIR OR NOT MICROHTTPD_LIBRARY)
message(FATAL_ERROR "libmicrohttpd not found")
endif()
find_path(MXML_INCLUDE_DIR mxml.h)
find_library(MXML_LIBRARY NAMES mxml libmxml mxml4)
if(NOT MXML_INCLUDE_DIR OR NOT MXML_LIBRARY)
message(FATAL_ERROR "mxml not found")
endif()
target_include_directories(${PROJECT_NAME} PRIVATE
${MICROHTTPD_INCLUDE_DIR}
${MXML_INCLUDE_DIR}
)
target_link_libraries(${PROJECT_NAME} PRIVATE
${MICROHTTPD_LIBRARY}
${MXML_LIBRARY}
)
endif()
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads)
include_directories(${CMAKE_BINARY_DIR} ${PROJECT_SOURCE_DIR})
file(COPY www DESTINATION ${CMAKE_BINARY_DIR})
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)