diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..769de81 --- /dev/null +++ b/CMakeLists.txt @@ -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) diff --git a/cmake/CPM.cmake b/cmake/CPM.cmake new file mode 100644 index 0000000..d866ad7 --- /dev/null +++ b/cmake/CPM.cmake @@ -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}) \ No newline at end of file