cmake-fetch/fetchtest/CMakeLists.txt
2025-03-10 12:12:52 +01:00

54 lines
No EOL
1.3 KiB
CMake

# Project
project(
fetchtest
VERSION 1.0.0
DESCRIPTION "fetchtest"
HOMEPAGE_URL "https://cmake.org/"
LANGUAGES CXX C
)
set(TARGET fetchtest)
# Source files
set(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src")
add_executable(${TARGET}
${SOURCES}/libxml.cpp
${SOURCES}/poco.cpp
${SOURCES}/main.cpp
)
# Include folders
target_include_directories(${TARGET} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include")
target_include_directories(${TARGET} PRIVATE "${LIBXML2_INCLUDE_DIR}")
target_include_directories(${TARGET} PRIVATE "${Poco_INCLUDE_DIRS}")
# Libraries
target_link_libraries(
${TARGET} PRIVATE
${LIBXML2_LIBRARY}
PocoFoundation
PocoUtil
PocoNet
PocoXML
PocoJSON
)
# Compilation depending on the platform
if(MSVC)
# Build the program as a window-only (no cmd)
if(CMAKE_BUILD_TYPE STREQUAL "Release")
target_link_options(${TARGET} PRIVATE "/SUBSYSTEM:WINDOWS")
target_compile_options(${TARGET} PRIVATE /W3 /WX )
else()
target_compile_options(${TARGET} PRIVATE /W3 /WX /DEBUG )
endif()
else()
target_compile_options(${TARGET} PRIVATE -Wall -Wextra -Wpedantic -Werror)
endif()
# Output folder
set_target_properties(${TARGET}
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)