You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
3.1 KiB
146 lines
3.1 KiB
# This file is automatically generated from cmake.toml - DO NOT EDIT
|
|
# See https://github.com/build-cpp/cmkr for more information
|
|
|
|
cmake_minimum_required(VERSION 2.8...3.8)
|
|
|
|
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
|
|
message(FATAL_ERROR "In-tree builds are not supported. Run CMake from a separate directory: cmake -B build")
|
|
endif()
|
|
|
|
# Regenerate CMakeLists.txt automatically in the root project
|
|
set(CMKR_ROOT_PROJECT OFF)
|
|
if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
|
set(CMKR_ROOT_PROJECT ON)
|
|
|
|
# Enable folder support
|
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
|
endif()
|
|
|
|
# Create a configure-time dependency on cmake.toml to improve IDE support
|
|
if(CMKR_ROOT_PROJECT)
|
|
configure_file(cmake.toml cmake.toml COPYONLY)
|
|
endif()
|
|
|
|
project(cmkr
|
|
LANGUAGES
|
|
CXX
|
|
VERSION
|
|
0.2.4
|
|
DESCRIPTION
|
|
"CMakeLists generator from TOML"
|
|
)
|
|
|
|
include("cmake/generate_documentation.cmake")
|
|
include("cmake/generate_resources.cmake")
|
|
|
|
# third_party
|
|
set(CMKR_CMAKE_FOLDER ${CMAKE_FOLDER})
|
|
if(CMAKE_FOLDER)
|
|
set(CMAKE_FOLDER "${CMAKE_FOLDER}/third_party")
|
|
else()
|
|
set(CMAKE_FOLDER third_party)
|
|
endif()
|
|
add_subdirectory(third_party)
|
|
set(CMAKE_FOLDER ${CMKR_CMAKE_FOLDER})
|
|
|
|
# tests
|
|
set(CMKR_CMAKE_FOLDER ${CMAKE_FOLDER})
|
|
if(CMAKE_FOLDER)
|
|
set(CMAKE_FOLDER "${CMAKE_FOLDER}/tests")
|
|
else()
|
|
set(CMAKE_FOLDER tests)
|
|
endif()
|
|
add_subdirectory(tests)
|
|
set(CMAKE_FOLDER ${CMKR_CMAKE_FOLDER})
|
|
|
|
|
|
|
|
# Target cmkr_generate_documentation
|
|
set(CMKR_TARGET cmkr_generate_documentation)
|
|
set(cmkr_generate_documentation_SOURCES "")
|
|
|
|
set(CMKR_SOURCES ${cmkr_generate_documentation_SOURCES})
|
|
add_library(cmkr_generate_documentation INTERFACE)
|
|
|
|
if(cmkr_generate_documentation_SOURCES)
|
|
target_sources(cmkr_generate_documentation INTERFACE ${cmkr_generate_documentation_SOURCES})
|
|
endif()
|
|
|
|
generate_documentation()
|
|
|
|
unset(CMKR_TARGET)
|
|
unset(CMKR_SOURCES)
|
|
|
|
# Target cmkr
|
|
set(CMKR_TARGET cmkr)
|
|
set(cmkr_SOURCES "")
|
|
|
|
list(APPEND cmkr_SOURCES
|
|
"src/arguments.cpp"
|
|
"src/build.cpp"
|
|
"src/cmake_generator.cpp"
|
|
"src/error.cpp"
|
|
"src/help.cpp"
|
|
"src/main.cpp"
|
|
"src/project_parser.cpp"
|
|
"include/arguments.hpp"
|
|
"include/build.hpp"
|
|
"include/cmake_generator.hpp"
|
|
"include/enum_helper.hpp"
|
|
"include/error.hpp"
|
|
"include/fs.hpp"
|
|
"include/help.hpp"
|
|
"include/literals.hpp"
|
|
"include/project_parser.hpp"
|
|
"cmake/cmkr.cmake"
|
|
"cmake/version.hpp.in"
|
|
)
|
|
|
|
list(APPEND cmkr_SOURCES
|
|
cmake.toml
|
|
)
|
|
|
|
set(CMKR_SOURCES ${cmkr_SOURCES})
|
|
add_executable(cmkr)
|
|
|
|
if(cmkr_SOURCES)
|
|
target_sources(cmkr PRIVATE ${cmkr_SOURCES})
|
|
endif()
|
|
|
|
get_directory_property(CMKR_VS_STARTUP_PROJECT DIRECTORY ${PROJECT_SOURCE_DIR} DEFINITION VS_STARTUP_PROJECT)
|
|
if(NOT CMKR_VS_STARTUP_PROJECT)
|
|
set_property(DIRECTORY ${PROJECT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT cmkr)
|
|
endif()
|
|
|
|
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${cmkr_SOURCES})
|
|
|
|
target_compile_features(cmkr PRIVATE
|
|
cxx_std_11
|
|
)
|
|
|
|
target_include_directories(cmkr PRIVATE
|
|
include
|
|
)
|
|
|
|
target_link_libraries(cmkr PRIVATE
|
|
toml11
|
|
ghc_filesystem
|
|
mpark_variant
|
|
ordered_map
|
|
nlohmann_json
|
|
)
|
|
|
|
generate_resources(${CMKR_TARGET})
|
|
|
|
unset(CMKR_TARGET)
|
|
unset(CMKR_SOURCES)
|
|
|
|
install(
|
|
TARGETS
|
|
cmkr
|
|
DESTINATION
|
|
bin
|
|
COMPONENT
|
|
cmkr
|
|
)
|