From cd78d7a42dc26e02b418d9278ba4199308c21248 Mon Sep 17 00:00:00 2001 From: Xaymar Date: Fri, 18 Apr 2025 16:01:18 +0200 Subject: [PATCH] Remove remaining traces of automatic versioning code --- CMakeLists.txt | 160 +++-------------------------------- code_compiler/CMakeLists.txt | 4 +- 2 files changed, 15 insertions(+), 149 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 13083f5..35fcdfe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,14 @@ -# AUTOGENERATED COPYRIGHT HEADER START -# Copyright (C) 2017-2024 Michael Fabian 'Xaymar' Dirks -# AUTOGENERATED COPYRIGHT HEADER END -cmake_minimum_required(VERSION 3.26...3.29.2 FATAL_ERROR) +# Copyright 2017-2025 Michael Fabian 'Xaymar' Dirks +# +# Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +cmake_minimum_required(VERSION 4.0 FATAL_ERROR) ################################################################################ # CMake Setup @@ -12,8 +19,6 @@ list(APPEND CMAKE_MESSAGE_INDENT "[${PROJECT_NAME}] ") # Module Search Paths list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake-clang" - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake-version" "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ) @@ -21,158 +26,21 @@ list(APPEND CMAKE_MODULE_PATH #- Interprocedural optimizations include("CheckIPOSupported") -#- CMake-based Versioning -include("version") - -#- CMake-based Clang integration -include("clang") - -SET_PROPERTY( GLOBAL PROPERTY USE_FOLDERS ON) - -################################################################################ -# Versioning -################################################################################ - -version(GENERATE _VERSION COMPRESSED MAJOR 0 MINOR 0 PATCH 0 TWEAK 0 REQUIRE "PATCH;") -version(PARSE _VERSION "${_VERSION}" REQUIRE "PATCH;TWEAK") - -# If possible, automatically generate versions from git. -if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/.git") - find_program(GIT - NAMES - git - git.exe - ) - - if(EXISTS "${GIT}") - # Try and calculate the exist version using git. - execute_process(COMMAND "${GIT}" describe --tags --long --abbrev=8 HEAD WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} RESULT_VARIABLE GIT_RESULT OUTPUT_VARIABLE GIT_OUTPUT ERROR_VARIABLE GIT_ERROR OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_STRIP_TRAILING_WHITESPACE ERROR_QUIET) - if((GIT_RESULT EQUAL 0) AND (NOT "${GIT_OUTPUT}" STREQUAL "")) - # Result will be MAJOR.MINOR.PATCH-TWEAK-gHASH - string(REPLACE "-" ";" GIT_OUTPUT "${GIT_OUTPUT}") - string(REPLACE "." ";" GIT_OUTPUT "${GIT_OUTPUT}") - - # Split into components - list(GET GIT_OUTPUT 0 GIT_OUTPUT_MAJOR) - list(GET GIT_OUTPUT 1 GIT_OUTPUT_MINOR) - list(GET GIT_OUTPUT 2 GIT_OUTPUT_PATCH) - list(GET GIT_OUTPUT 3 GIT_OUTPUT_TWEAK) - list(GET GIT_OUTPUT 4 GIT_OUTPUT_BUILD) - - # Special case: Tag contains prerelease - if(GIT_OUTPUT_PATCH MATCHES "([0-9]+)([a-zA-Z]+)([0-9]*)") - # Patch requires special parsing. - set(GIT_OUTPUT_PATCH "${CMAKE_MATCH_1}") - if(CMAKE_MATCH_3 GREATER 0) - set(GIT_OUTPUT_PRERELEASE "${CMAKE_MATCH_2}") - else() - set(GIT_OUTPUT_PRERELEASE "a") - endif() - MATH(EXPR GIT_OUTPUT_TWEAK "${GIT_OUTPUT_TWEAK} + ${CMAKE_MATCH_3}") - - # Modify the global version - version(MODIFY _VERSION "${_VERSION}" COMPRESS - MAJOR "${GIT_OUTPUT_MAJOR}" - MINOR "${GIT_OUTPUT_MINOR}" - PATCH "${GIT_OUTPUT_PATCH}" - TWEAK "${GIT_OUTPUT_TWEAK}" - BUILD "${GIT_OUTPUT_BUILD}" - PRERELEASE "${GIT_OUTPUT_PRERELEASE}" - REQUIRE "PATCH;TWEAK" - ) - else() - # Modify the global version - version(MODIFY _VERSION "${_VERSION}" COMPRESS - MAJOR "${GIT_OUTPUT_MAJOR}" - MINOR "${GIT_OUTPUT_MINOR}" - PATCH "${GIT_OUTPUT_PATCH}" - TWEAK "${GIT_OUTPUT_TWEAK}" - BUILD "${GIT_OUTPUT_BUILD}" - PRERELEASE "a" - REQUIRE "PATCH;TWEAK" - ) - endif() - else() - execute_process(COMMAND "${GIT}" rev-list --count HEAD WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} RESULT_VARIABLE GIT_RESULT OUTPUT_VARIABLE GIT_OUTPUT ERROR_VARIABLE GIT_ERROR OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_STRIP_TRAILING_WHITESPACE ERROR_QUIET) - if((GIT_RESULT EQUAL 0) AND (NOT "${GIT_OUTPUT}" STREQUAL "")) - version(MODIFY _VERSION "${_VERSION}" COMPRESS - TWEAK "${GIT_OUTPUT}" - PRERELEASE "a" - REQUIRE "PATCH;TWEAK" - ) - - # Determine the build using git. - execute_process(COMMAND "${GIT}" log -1 "--pretty=format:g%h" --abbrev=8 HEAD WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} RESULT_VARIABLE GIT_RESULT OUTPUT_VARIABLE GIT_OUTPUT ERROR_VARIABLE GIT_ERROR OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_STRIP_TRAILING_WHITESPACE ERROR_QUIET) - if((GIT_RESULT EQUAL 0) AND (NOT "${GIT_OUTPUT}" STREQUAL "")) - version(MODIFY _VERSION "${_VERSION}" COMPRESS - BUILD "${GIT_OUTPUT}" - REQUIRE "PATCH;TWEAK" - ) - else() - message(WARNING "Failed to detect build version with 'git'.") - endif() - else() - message(WARNING "Failed to automatically detect version with 'git'.") - endif() - endif() - else() - message(WARNING "'git' not found, automatic version detection disabled.") - endif() -else() - message(STATUS "Not a git repository, automatic version detection disabled.") -endif() - -# Allow manual overrides of the detected version. -if(${PREFIX}VERSION) - version(PARSE _VERSION_CFG "${${PREFIX}VERSION}" REQUIRE "PATCH;TWEAK") - if("${_VERSION_CFG_BUILD}" STREQUAL "") - set(_VERSION_CFG_BUILD "${_VERSION_BUILD}") - endif() - version(GENERATE _VERSION COMPRESS - MAJOR "${_VERSION_CFG_MAJOR}" - MINOR "${_VERSION_CFG_MINOR}" - PATCH "${_VERSION_CFG_PATCH}" - TWEAK "${_VERSION_CFG_TWEAK}" - PRERELEASE "${_VERSION_CFG_PRERELEASE}" - BUILD "${_VERSION_CFG_BUILD}" - ) -endif() - -# Fix up missing parts of the Version -version(PARSE _VERSION "${_VERSION}" REQUIRE "PATCH;TWEAK") - -set(_VERSION_THIN "${_VERSION_MAJOR}.${_VERSION_MINOR}.${_VERSION_PATCH}") -if(NOT (_VERSION_PRERELEASE STREQUAL "")) - set(_VERSION_THIN "${_VERSION_THIN}${_VERSION_PRERELEASE}${_VERSION_TWEAK}") -endif() -if(NOT (VERSION_COMMIT STREQUAL "")) - set(_VERSION_THIN "${_VERSION_THIN}-${_VERSION_BUILD}") -endif() - -# Parse & Log the detected version. -message(STATUS "Version ${_VERSION_THIN}") +set_property(GLOBAL PROPERTY USE_FOLDERS ON) ################################################################################ # Project ################################################################################ # Metadata -version(GENERATE PROJECT_VERSION - MAJOR "${_VERSION_MAJOR}" - MINOR "${_VERSION_MINOR}" - PATCH "${_VERSION_PATCH}" - TWEAK "${_VERSION_TWEAK}" - REQUIRE "PATCH;TWEAK" -) project( ${PROJECT_NAME} - VERSION ${PROJECT_VERSION} ) set(PROJECT_IDENTIFER "com.xaymar.blitzllvm") set(PROJECT_TITLE "BlitzLLVM") set(PROJECT_AUTHORS "Xaymar ") # ToDo: Generate from AUTHORS set(PROJECT_COPYRIGHT "All Rights Reserved. See LICENSE file for more information") # ToDo: Generate from LICENSE -set(PROJECT_TRADEMARKS "") +set(PROJECT_TRADEMARKS "") function(init_project TARGET) set_target_properties(${TARGET} PROPERTIES @@ -233,4 +101,4 @@ endfunction() ################################################################################ # Sub-projects ################################################################################ -ADD_SUBDIRECTORY("code_compiler") +add_subdirectory("code_compiler") diff --git a/code_compiler/CMakeLists.txt b/code_compiler/CMakeLists.txt index 08f1974..f6563cd 100644 --- a/code_compiler/CMakeLists.txt +++ b/code_compiler/CMakeLists.txt @@ -1,9 +1,7 @@ # AUTOGENERATED COPYRIGHT HEADER START # Copyright (C) 2017-2025 Michael Fabian 'Xaymar' Dirks # AUTOGENERATED COPYRIGHT HEADER END -project(compiler - VERSION ${PROJECT_VERSION} -) +project(compiler) add_executable(${PROJECT_NAME}) init_project(${PROJECT_NAME})