reflective-rapidjson/generator/CMakeLists.txt

60 lines
1.2 KiB
CMake

cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
# metadata
set(META_PROJECT_NAME reflective_rapidjson_generator)
set(META_PROJECT_TYPE application)
set(LINK_TESTS_AGAINST_APP_TARGET ON)
# add project files
set(HEADER_FILES
codegenerator.h
codefactory.h
frontendaction.h
consumer.h
visitor.h
clangversionabstraction.h
)
set(SRC_FILES
codegenerator.cpp
codefactory.cpp
frontendaction.cpp
consumer.cpp
clangversionabstraction.cpp
visitor.cpp
main.cpp
)
set(TEST_HEADER_FILES
)
set(TEST_SRC_FILES
tests/cppunit.cpp
tests/overall.cpp
)
# find c++utilities
find_package(c++utilities 4.11.0 REQUIRED)
use_cpp_utilities()
# find libclang
find_package(Clang REQUIRED)
list(APPEND PRIVATE_LIBRARIES clangTooling)
# also add reflective_rapidjson
list(APPEND PRIVATE_LIBRARIES reflective_rapidjson)
# trigger code generator for tests
include(ReflectionGenerator)
add_reflection_generator_invocation(
INPUT_FILES tests/overall.cpp tests/cppunit.cpp
GENERATORS json
OUTPUT_LISTS TEST_HEADER_FILES
)
# include modules to apply configuration
include(BasicConfig)
include(WindowsResources)
include(AppTarget)
include(TestTarget)
include(ShellCompletion)
include(Doxygen)
include(ConfigHeader)