arch-repo-manager/pacparse/CMakeLists.txt

61 lines
1.6 KiB
CMake

cmake_minimum_required(VERSION 3.17.0 FATAL_ERROR)
# add project files
set(HEADER_FILES)
set(SRC_FILES main.cpp)
set(TEST_HEADER_FILES)
set(TEST_SRC_FILES tests/cppunit.cpp tests/check.cpp)
# meta data
set(META_PROJECT_NAME pacparse)
set(META_PROJECT_TYPE application)
set(META_PROJECT_VARNAME REPO_CLEAN)
set(META_APP_NAME "Package parser")
set(META_APP_AUTHOR "Martchus")
set(META_APP_DESCRIPTION "Tool to parse an Arch Linux package printing the results as JSON")
set(META_VERSION_MAJOR 0)
set(META_VERSION_MINOR 0)
set(META_VERSION_PATCH 1)
# find c++utilities
set(CONFIGURATION_PACKAGE_SUFFIX
""
CACHE STRING "sets the suffix for find_package() calls to packages configured via c++utilities")
find_package(c++utilities${CONFIGURATION_PACKAGE_SUFFIX} 5.0.0 REQUIRED)
use_cpp_utilities()
# find reflective-rapidjson
find_package(reflective_rapidjson${CONFIGURATION_PACKAGE_SUFFIX} REQUIRED)
use_reflective_rapidjson(VISIBILITY PUBLIC)
# find backend libraries
find_package(libpkg ${META_APP_VERSION} REQUIRED)
use_libpkg()
list(APPEND PRIVATE_LIBRARIES pthread)
# apply basic configuration
include(BasicConfig)
# add reflection generator invocation
include(ReflectionGenerator)
add_reflection_generator_invocation(
INPUT_FILES
main.cpp
CLANG_OPTIONS_FROM_TARGETS
"${META_TARGET_NAME}"
CLANG_OPTIONS_FROM_DEPENDENCIES
"${PUBLIC_LIBRARIES};${PRIVATE_LIBRARIES}"
GENERATORS
json
OUTPUT_LISTS
SRC_FILES
ERROR_RESILIENT)
# apply further configuration
include(WindowsResources)
include(AppTarget)
include(TestTarget)
include(ShellCompletion)
include(ConfigHeader)