67 lines
1.6 KiB
CMake
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) |