-
Notifications
You must be signed in to change notification settings - Fork 54
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #657 from apiaryio/tjanc/cmake-targets
Initial CMake configuration
- Loading branch information
Showing
54 changed files
with
731 additions
and
84 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
cmake_minimum_required(VERSION 3.4 FATAL_ERROR) | ||
|
||
message(STATUS "Testing dependencies ${BUILD_TESTING_DEPENDENCIES}.") | ||
|
||
set(CMAKE_PREFIX_PATH "/prefix") | ||
set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY TRUE) | ||
set(as_subproject | ||
markdown-parser | ||
snowcrash | ||
Sundown | ||
cmdline | ||
Drafter | ||
Catch2 | ||
dtl | ||
BoostContainer) | ||
|
||
macro(find_package) | ||
if(NOT "${ARGV0}" IN_LIST as_subproject) | ||
_find_package(${ARGV}) | ||
endif() | ||
endmacro() | ||
|
||
# add external dependencies living in `ext` | ||
add_subdirectory(ext/snowcrash/ext/markdown-parser/ext/sundown EXCLUDE_FROM_ALL) | ||
add_subdirectory(ext/cmdline EXCLUDE_FROM_ALL) | ||
add_subdirectory(ext/boost_1_66_0 EXCLUDE_FROM_ALL) | ||
|
||
message(STATUS "Setting up tests for production...") | ||
set(BUILD_TESTING ON) | ||
add_subdirectory(test/vendor/Catch EXCLUDE_FROM_ALL) | ||
add_subdirectory(test/vendor/dtl EXCLUDE_FROM_ALL) | ||
include(CTest) | ||
include(test/vendor/Catch/contrib/Catch.cmake) | ||
enable_testing() | ||
|
||
# targets developed in this super project | ||
add_subdirectory(ext/snowcrash/ext/markdown-parser EXCLUDE_FROM_ALL) | ||
add_subdirectory(ext/snowcrash EXCLUDE_FROM_ALL) | ||
|
||
# drafter | ||
add_subdirectory(src) | ||
if(${BUILD_TESTING}) | ||
add_subdirectory(test) | ||
add_custom_target(drafter-test-suite ALL) | ||
add_dependencies(drafter-test-suite drafter-test markdown-parser-test snowcrash-test) | ||
endif() | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
include(CMakeFindDependencyMacro) | ||
include("${CMAKE_CURRENT_LIST_DIR}/BoostContainerTargets.cmake") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
cmake_minimum_required(VERSION 3.5 FATAL_ERROR) | ||
|
||
project(BoostContainer VERSION 1.66 LANGUAGES CXX) | ||
|
||
add_library(container INTERFACE) | ||
|
||
target_include_directories(container INTERFACE | ||
$<BUILD_INTERFACE:${BoostContainer_BINARY_DIR}> | ||
$<BUILD_INTERFACE:${BoostContainer_SOURCE_DIR}> | ||
$<INSTALL_INTERFACE:> | ||
) | ||
|
||
target_link_libraries(container INTERFACE) | ||
|
||
install(EXPORT container-targets | ||
FILE BoostContainerTargets.cmake | ||
NAMESPACE Boost:: | ||
DESTINATION lib/cmake/boost | ||
) | ||
|
||
install(TARGETS container EXPORT container-targets | ||
INCLUDES DESTINATION include | ||
) | ||
|
||
include(CMakePackageConfigHelpers) | ||
write_basic_package_version_file("BoostContainerConfigVersion.cmake" | ||
VERSION ${BoostContainer_VERSION} | ||
COMPATIBILITY SameMajorVersion | ||
) | ||
install( | ||
FILES | ||
"BoostContainerConfig.cmake" | ||
"${CMAKE_CURRENT_BINARY_DIR}/BoostContainerConfigVersion.cmake" | ||
DESTINATION | ||
lib/cmake/boost | ||
) | ||
|
||
add_library(Boost::container ALIAS container) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
cmake_minimum_required(VERSION 3.4 FATAL_ERROR) | ||
|
||
project(snowcrash VERSION 0.1 LANGUAGES CXX) | ||
|
||
set(snowcrash_SOURCES | ||
src/Blueprint.cc | ||
src/BlueprintSourcemap.cc | ||
src/HeadersParser.cc | ||
src/HTTP.cc | ||
src/MSON.cc | ||
src/MSONOneOfParser.cc | ||
src/MSONSourcemap.cc | ||
src/MSONTypeSectionParser.cc | ||
src/MSONValueMemberParser.cc | ||
src/Section.cc | ||
src/Signature.cc | ||
src/snowcrash.cc | ||
src/UriTemplateParser.cc | ||
) | ||
|
||
if(MSVC) | ||
set(snowcrash_SOURCES ${snowcrash_SOURCES} src/win/RegexMatch.cc) | ||
else() | ||
set(snowcrash_SOURCES ${snowcrash_SOURCES} src/posix/RegexMatch.cc) | ||
endif() | ||
|
||
add_library(snowcrash SHARED ${snowcrash_SOURCES}) | ||
add_library(snowcrash-static STATIC ${snowcrash_SOURCES}) | ||
add_library(snowcrash-pic STATIC ${snowcrash_SOURCES}) | ||
set_property(TARGET snowcrash-pic PROPERTY POSITION_INDEPENDENT_CODE 1) | ||
|
||
if(UNIX) | ||
set_target_properties(snowcrash-static PROPERTIES OUTPUT_NAME snowcrash) | ||
endif() | ||
|
||
find_package(markdown-parser 1.0 REQUIRED) | ||
|
||
target_link_libraries(snowcrash PUBLIC markdown-parser::markdown-parser-pic) | ||
target_link_libraries(snowcrash-static PUBLIC markdown-parser::markdown-parser-static) | ||
target_link_libraries(snowcrash-pic PUBLIC markdown-parser::markdown-parser-pic) | ||
|
||
target_include_directories(snowcrash PUBLIC | ||
$<BUILD_INTERFACE:${snowcrash_BINARY_DIR}/src> | ||
$<BUILD_INTERFACE:${snowcrash_SOURCE_DIR}/src> | ||
$<INSTALL_INTERFACE:src> | ||
) | ||
|
||
target_include_directories(snowcrash-static PUBLIC | ||
$<BUILD_INTERFACE:${snowcrash_BINARY_DIR}/src> | ||
$<BUILD_INTERFACE:${snowcrash_SOURCE_DIR}/src> | ||
$<INSTALL_INTERFACE:src> | ||
) | ||
|
||
target_include_directories(snowcrash-pic PUBLIC | ||
$<BUILD_INTERFACE:${snowcrash_BINARY_DIR}/src> | ||
$<BUILD_INTERFACE:${snowcrash_SOURCE_DIR}/src> | ||
$<INSTALL_INTERFACE:src> | ||
) | ||
|
||
install(TARGETS snowcrash snowcrash-static snowcrash-pic EXPORT snowcrash-targets | ||
LIBRARY DESTINATION lib | ||
ARCHIVE DESTINATION lib | ||
RUNTIME DESTINATION bin | ||
INCLUDES DESTINATION include | ||
) | ||
|
||
install(EXPORT snowcrash-targets | ||
FILE snowcrash-targets.cmake | ||
NAMESPACE snowcrash:: | ||
DESTINATION lib/cmake/snowcrash | ||
) | ||
|
||
include(CMakePackageConfigHelpers) | ||
write_basic_package_version_file("snowcrash-config-version.cmake" | ||
VERSION ${snowcrash_VERSION} | ||
COMPATIBILITY SameMajorVersion | ||
) | ||
install( | ||
FILES | ||
"snowcrash-config.cmake" | ||
"${CMAKE_CURRENT_BINARY_DIR}/snowcrash-config-version.cmake" | ||
DESTINATION | ||
lib/cmake/snowcrash | ||
) | ||
|
||
add_library(snowcrash::snowcrash ALIAS snowcrash) | ||
add_library(snowcrash::snowcrash-static ALIAS snowcrash-static) | ||
add_library(snowcrash::snowcrash-pic ALIAS snowcrash-pic) | ||
|
||
|
||
if(BUILD_TESTING) | ||
include(snowcrash-tests.cmake) | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,126 @@ | ||
cmake_minimum_required(VERSION 3.4 FATAL_ERROR) | ||
|
||
project(markdown-parser VERSION 0.1 LANGUAGES CXX) | ||
|
||
set(MARKDOWN_PARSER_SOURCES | ||
src/ByteBuffer.cc | ||
src/MarkdownNode.cc | ||
src/MarkdownParser.cc | ||
) | ||
|
||
set(MARKDOWN_PARSER_COMPILE_FEATURES | ||
cxx_alias_templates | ||
cxx_alignas | ||
cxx_alignof | ||
cxx_attribute_deprecated | ||
cxx_auto_type | ||
cxx_constexpr | ||
cxx_contextual_conversions | ||
cxx_decltype | ||
cxx_decltype_auto | ||
cxx_defaulted_functions | ||
cxx_defaulted_move_initializers | ||
cxx_delegating_constructors | ||
cxx_deleted_functions | ||
cxx_digit_separators | ||
cxx_explicit_conversions | ||
cxx_final | ||
cxx_generalized_initializers | ||
cxx_generic_lambdas | ||
cxx_inheriting_constructors | ||
cxx_lambdas | ||
cxx_lambda_init_captures | ||
cxx_noexcept | ||
cxx_nonstatic_member_init | ||
cxx_nullptr | ||
cxx_override | ||
cxx_range_for | ||
cxx_raw_string_literals | ||
cxx_return_type_deduction | ||
cxx_rvalue_references | ||
cxx_sizeof_member | ||
cxx_static_assert | ||
cxx_strong_enums | ||
cxx_thread_local | ||
cxx_trailing_return_types | ||
cxx_unicode_literals | ||
cxx_uniform_initialization | ||
cxx_unrestricted_unions | ||
cxx_user_literals | ||
cxx_variable_templates | ||
cxx_variadic_macros | ||
cxx_variadic_templates | ||
cxx_template_template_parameters | ||
) | ||
|
||
add_library(markdown-parser SHARED ${MARKDOWN_PARSER_SOURCES}) | ||
add_library(markdown-parser-static STATIC ${MARKDOWN_PARSER_SOURCES}) | ||
add_library(markdown-parser-pic STATIC ${MARKDOWN_PARSER_SOURCES}) | ||
set_property(TARGET markdown-parser-pic PROPERTY POSITION_INDEPENDENT_CODE 1) | ||
|
||
if(UNIX) | ||
set_target_properties(markdown-parser-static PROPERTIES OUTPUT_NAME markdown-parser) | ||
endif() | ||
|
||
find_package(Sundown 1.0 REQUIRED) | ||
|
||
target_link_libraries(markdown-parser PUBLIC Apiary::sundown-pic) | ||
target_link_libraries(markdown-parser-static PUBLIC Apiary::sundown-static) | ||
target_link_libraries(markdown-parser-pic PUBLIC Apiary::sundown-pic) | ||
|
||
target_include_directories(markdown-parser PUBLIC | ||
$<BUILD_INTERFACE:${markdown-parser_BINARY_DIR}/src> | ||
$<BUILD_INTERFACE:${markdown-parser_SOURCE_DIR}/src> | ||
$<INSTALL_INTERFACE:src> | ||
) | ||
|
||
target_include_directories(markdown-parser-static PUBLIC | ||
$<BUILD_INTERFACE:${markdown-parser_BINARY_DIR}/src> | ||
$<BUILD_INTERFACE:${markdown-parser_SOURCE_DIR}/src> | ||
$<INSTALL_INTERFACE:src> | ||
) | ||
|
||
target_include_directories(markdown-parser-pic PUBLIC | ||
$<BUILD_INTERFACE:${markdown-parser_BINARY_DIR}/src> | ||
$<BUILD_INTERFACE:${markdown-parser_SOURCE_DIR}/src> | ||
$<INSTALL_INTERFACE:src> | ||
) | ||
|
||
target_compile_features(markdown-parser PUBLIC ${MARKDOWN_PARSER_COMPILE_FEATURES}) | ||
target_compile_features(markdown-parser-static PUBLIC ${MARKDOWN_PARSER_COMPILE_FEATURES}) | ||
target_compile_features(markdown-parser-pic PUBLIC ${MARKDOWN_PARSER_COMPILE_FEATURES}) | ||
|
||
install(TARGETS markdown-parser markdown-parser-static markdown-parser-pic EXPORT markdown-parser-targets | ||
LIBRARY DESTINATION lib | ||
ARCHIVE DESTINATION lib | ||
RUNTIME DESTINATION bin | ||
INCLUDES DESTINATION include | ||
) | ||
|
||
install(EXPORT markdown-parser-targets | ||
FILE markdown-parser-targets.cmake | ||
NAMESPACE markdown-parser:: | ||
DESTINATION lib/cmake/markdown-parser | ||
) | ||
|
||
include(CMakePackageConfigHelpers) | ||
write_basic_package_version_file("markdown-parser-config-version.cmake" | ||
VERSION ${markdown-parser_VERSION} | ||
COMPATIBILITY SameMajorVersion | ||
) | ||
|
||
install( | ||
FILES | ||
"markdown-parser-config.cmake" | ||
"${CMAKE_CURRENT_BINARY_DIR}/markdown-parser-config-version.cmake" | ||
DESTINATION | ||
lib/cmake/markdown-parser | ||
) | ||
|
||
add_library(markdown-parser::markdown-parser ALIAS markdown-parser) | ||
add_library(markdown-parser::markdown-parser-static ALIAS markdown-parser-static) | ||
add_library(markdown-parser::markdown-parser-pic ALIAS markdown-parser-pic) | ||
|
||
if(BUILD_TESTING) | ||
include(markdown-parser-tests.cmake) | ||
endif() |
3 changes: 3 additions & 0 deletions
3
ext/snowcrash/ext/markdown-parser/markdown-parser-config.cmake
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
include(CMakeFindDependencyMacro) | ||
find_dependency(Sundown 1.0) | ||
include("${CMAKE_CURRENT_LIST_DIR}/markdown-parser-targets.cmake") |
18 changes: 18 additions & 0 deletions
18
ext/snowcrash/ext/markdown-parser/markdown-parser-tests.cmake
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
cmake_minimum_required(VERSION 3.4 FATAL_ERROR) | ||
|
||
find_package(Catch2 1.0 REQUIRED) | ||
|
||
add_executable(markdown-parser-test | ||
test/test-ByteBuffer.cc | ||
test/test-libmarkdownparser.cc | ||
test/test-MarkdownParser.cc | ||
) | ||
|
||
add_test(MardownParserTest markdown-parser-test) | ||
|
||
target_link_libraries(markdown-parser-test | ||
PRIVATE | ||
Catch2::Catch2 | ||
markdown-parser::markdown-parser-static | ||
) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,4 +7,4 @@ | |
// | ||
|
||
#define CATCH_CONFIG_MAIN | ||
#include "catch.hpp" | ||
#include <catch2/catch.hpp> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
include(CMakeFindDependencyMacro) | ||
find_dependency(markdown-parser 1.0) | ||
include("${CMAKE_CURRENT_LIST_DIR}/snowcrash-targets.cmake") |
Oops, something went wrong.