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