# 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.12
	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/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
)
