# 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 3.15)

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)

	# Bootstrap cmkr
	include("cmake/cmkr.cmake" OPTIONAL RESULT_VARIABLE CMKR_INCLUDE_RESULT)
	if(CMKR_INCLUDE_RESULT)
		cmkr()
	endif()

	# 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()

include("cmake/msvc-static-runtime.cmake")
include("cmake/msvc-configurations.cmake")

project(LLVMDemangle
	LANGUAGES
		CXX
)

# Target LLVMDemangle
set(CMKR_TARGET LLVMDemangle)
set(LLVMDemangle_SOURCES "")

list(APPEND LLVMDemangle_SOURCES
	"llvm/lib/Demangle/DLangDemangle.cpp"
	"llvm/lib/Demangle/Demangle.cpp"
	"llvm/lib/Demangle/ItaniumDemangle.cpp"
	"llvm/lib/Demangle/MicrosoftDemangle.cpp"
	"llvm/lib/Demangle/MicrosoftDemangleNodes.cpp"
	"llvm/lib/Demangle/RustDemangle.cpp"
	"include/LLVMDemangle.h"
	"include/llvm/Demangle/Demangle.h"
	"include/llvm/Demangle/DemangleConfig.h"
	"include/llvm/Demangle/ItaniumDemangle.h"
	"include/llvm/Demangle/MicrosoftDemangle.h"
	"include/llvm/Demangle/MicrosoftDemangleNodes.h"
	"include/llvm/Demangle/StringView.h"
	"include/llvm/Demangle/Utility.h"
	LLVMDemangle.cpp
)

list(APPEND LLVMDemangle_SOURCES
	cmake.toml
)

set(CMKR_SOURCES ${LLVMDemangle_SOURCES})
add_library(LLVMDemangle SHARED)

if(LLVMDemangle_SOURCES)
	target_sources(LLVMDemangle PRIVATE ${LLVMDemangle_SOURCES})
endif()

source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${LLVMDemangle_SOURCES})

target_compile_features(LLVMDemangle PUBLIC
	cxx_std_14
)

target_include_directories(LLVMDemangle PUBLIC
	include
)

unset(CMKR_TARGET)
unset(CMKR_SOURCES)

# Target LLVMDemangleTool
set(CMKR_TARGET LLVMDemangleTool)
set(LLVMDemangleTool_SOURCES "")

list(APPEND LLVMDemangleTool_SOURCES
	LLVMDemangleTool.cpp
)

list(APPEND LLVMDemangleTool_SOURCES
	cmake.toml
)

set(CMKR_SOURCES ${LLVMDemangleTool_SOURCES})
add_executable(LLVMDemangleTool)

if(LLVMDemangleTool_SOURCES)
	target_sources(LLVMDemangleTool PRIVATE ${LLVMDemangleTool_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 LLVMDemangleTool)
endif()

source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${LLVMDemangleTool_SOURCES})

target_link_libraries(LLVMDemangleTool PRIVATE
	LLVMDemangle
)

unset(CMKR_TARGET)
unset(CMKR_SOURCES)

