artichoke-lang/CMakeLists.txt
erick-alcachofa 0f4474821d
chore: Added CMake project setup
Added CMake files to set up project build, also added the file tree
structure of the project and clangd related settings
2025-03-04 12:50:53 -06:00

65 lines
1.3 KiB
CMake

cmake_minimum_required(VERSION 3.20)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
project(
artichoke
VERSION 0.1.0
DESCRIPTION "artichoke programming language"
LANGUAGES CXX
)
set(PROJECT_URL "lang.artichoke.dev")
set(PROJECT_AUTHOR "erick-alcachofa")
set(PROJECT_AUTHOR_GITHUB "@erick-alcachofa")
include(cmake/testing.cmake)
add_subdirectory(lib)
add_subdirectory(frontend)
install(
TARGETS frontend library
EXPORT artichokeTargets
FILE_SET HEADERS
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
INCLUDES DESTINATION include
)
get_target_property(
EXECUTABLE_NAME frontend
OUTPUT_NAME
)
install(
CODE "execute_process(
COMMAND ${CMAKE_COMMAND} -E create_symlink
\${CMAKE_INSTALL_PREFIX}/bin/${EXECUTABLE_NAME}
\${CMAKE_INSTALL_PREFIX}/bin/arti-c
)"
)
install(
EXPORT artichokeTargets
FILE artichokeTargets.cmake
NAMESPACE artichoke::
DESTINATION lib/cmake/artichoke
)
include (CMakePackageConfigHelpers)
write_basic_package_version_file(
"artichokeConfigVersion.cmake"
VERSION ${artichoke_VERSION}
COMPATIBILITY AnyNewerVersion
)
install(
FILES "cmake/artichokeConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/artichokeConfigVersion.cmake"
DESTINATION lib/cmake/artichoke
)