Integrate CMake Package Manager.
This commit is contained in:
41
CMakeLists.txt
Normal file
41
CMakeLists.txt
Normal file
@@ -0,0 +1,41 @@
|
||||
# Define what CMake versions this project targets.
|
||||
cmake_minimum_required(VERSION 3.18..3.29)
|
||||
|
||||
# Define our project.
|
||||
project(ReWalker
|
||||
VERSION 1.0
|
||||
LANGUAGES CXX)
|
||||
|
||||
# Prevent building in main directory, it generates lots of clutter!
|
||||
if (PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)
|
||||
message(FATAL_ERROR "In-source builds are not allowed")
|
||||
endif()
|
||||
|
||||
# Set C++ version
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
# Set optimization level
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0")
|
||||
|
||||
# Include addon scripts from the 'cmake' directory
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||
|
||||
# Include CMake Package Manager
|
||||
include(cmake/CPM.cmake)
|
||||
|
||||
# Automatically clone, compile and link the ReWindow library.
|
||||
# You specify the release name to target against. See the link below for releases:
|
||||
# https://git.redacted.cc/Redacted/ReWindow/releases
|
||||
|
||||
CPMAddPackage(
|
||||
NAME ReWindow
|
||||
URL URL https://git.redacted.cc/Redacted/ReWindow/archive/Prerelease-31.zip
|
||||
)
|
||||
|
||||
add_executable(ReWalkerApp test.cpp)
|
||||
|
||||
|
||||
target_include_directories(ReWalkerApp PUBLIC ${ReWindow_SOURCE_DIR}/include ${J3ML_SOURCE_DIR}/include)
|
||||
|
||||
target_link_libraries(ReWalkerApp PUBLIC J3ML ReWindowLibrary)
|
24
cmake/CPM.cmake
Normal file
24
cmake/CPM.cmake
Normal file
@@ -0,0 +1,24 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# SPDX-FileCopyrightText: Copyright (c) 2019-2023 Lars Melchior and contributors
|
||||
|
||||
set(CPM_DOWNLOAD_VERSION 0.38.7)
|
||||
set(CPM_HASH_SUM "83e5eb71b2bbb8b1f2ad38f1950287a057624e385c238f6087f94cdfc44af9c5")
|
||||
|
||||
if(CPM_SOURCE_CACHE)
|
||||
set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
||||
elseif(DEFINED ENV{CPM_SOURCE_CACHE})
|
||||
set(CPM_DOWNLOAD_LOCATION "$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
||||
else()
|
||||
set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
||||
endif()
|
||||
|
||||
# Expand relative path. This is important if the provided path contains a tilde (~)
|
||||
get_filename_component(CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE)
|
||||
|
||||
file(DOWNLOAD
|
||||
https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
|
||||
${CPM_DOWNLOAD_LOCATION} EXPECTED_HASH SHA256=${CPM_HASH_SUM}
|
||||
)
|
||||
|
||||
include(${CPM_DOWNLOAD_LOCATION})
|
Reference in New Issue
Block a user