Added CMake files to set up project build, also added the file tree structure of the project and clangd related settings
65 lines
1.3 KiB
CMake
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
|
|
)
|