Remove user-specific clang configurations

Also replace zlib with zlib-ng
This commit is contained in:
Jettford 2024-12-04 22:38:05 +00:00
parent f4082cc538
commit 6c8bb743af
3 changed files with 133 additions and 693 deletions

2
.gitignore vendored
View File

@ -112,6 +112,8 @@ CMakeFiles/TargetDirectories.txt
*.sln *.sln
*.recipe *.recipe
CMakeUserPresets.json
# clangd # clangd
.cache .cache
thirdparty/zlib-1.2.11/ thirdparty/zlib-1.2.11/

View File

@ -1,700 +1,136 @@
{ {
"version": 6, "version": 6,
"cmakeMinimumRequired": { "cmakeMinimumRequired": {
"major": 3, "major": 3,
"minor": 25, "minor": 25,
"patch": 0 "patch": 0
},
"configurePresets": [
{
"name": "default",
"displayName": "Default configure step",
"description": "Use 'build' dir and Unix makefiles",
"binaryDir": "${sourceDir}/build",
"environment": {
"DLU_CONFIG_DIR": "${sourceDir}/build"
},
"generator": "Unix Makefiles",
"hidden": true
}, },
"configurePresets": [ {
{ "name": "windows-default",
"name": "default", "inherits": "default",
"displayName": "Default configure step", "displayName": "Windows Default Configure Settings",
"description": "Use 'build' dir and Unix makefiles", "description": "Sets build and install directories",
"binaryDir": "${sourceDir}/build", "generator": "Visual Studio 17 2022",
"environment": { "condition": {
"DLU_CONFIG_DIR": "${sourceDir}/build" "type": "equals",
}, "lhs": "${hostSystemName}",
"generator": "Unix Makefiles" "rhs": "Windows"
}, },
{
"name": "debug-config", "hidden": true
"hidden": true, },
"cacheVariables": { {
"CMAKE_BUILD_TYPE": "Debug" "name": "windows-msvc",
} "inherits": "windows-default",
}, "displayName": "Windows (MSVC)",
{ "description": "Create a build using MSVC",
"name": "relwithdebinfo-config", "binaryDir": "${sourceDir}/build/msvc"
"hidden": true, },
"cacheVariables": { {
"CMAKE_BUILD_TYPE": "RelWithDebInfo" "name": "windows-clang",
} "inherits": "windows-default",
}, "displayName": "EXPERIMENTAL - Windows (Clang)",
{ "description": "Create a build using Clang",
"name": "release-config", "binaryDir": "${sourceDir}/build/windows-clang",
"hidden": true, "toolset": "ClangCL"
"cacheVariables": { },
"CMAKE_BUILD_TYPE": "Release"
} {
}, "name": "linux-default",
{ "inherits": "default",
"name": "clang-config", "hidden": true,
"hidden": true, "condition": {
"toolchainFile": "${sourceDir}/cmake/toolchains/linux-clang.cmake" "type": "equals",
}, "lhs": "${hostSystemName}",
{ "rhs": "Linux"
"name": "gnu-config", }
"hidden": true, },
"toolchainFile": "${sourceDir}/cmake/toolchains/linux-gnu.cmake" {
}, "name": "linux-clang",
{ "inherits": "linux-default",
"name": "windows-msvc",
"inherits": "default", "toolchainFile": "${sourceDir}/cmake/toolchains/linux-clang.cmake",
"displayName": "[Multi] Windows (MSVC)",
"description": "Set architecture to 64-bit (b/c RakNet)", "displayName": "Linux (Clang)",
"generator": "Visual Studio 17 2022", "description": "Create a build using the Clang toolchain for Linux",
"binaryDir": "${sourceDir}/build/msvc", "binaryDir": "${sourceDir}/build/linux-clang"
"architecture": { },
"value": "x64" {
}, "name": "linux-gnu",
"condition": { "inherits": "linux-default",
"type": "equals",
"lhs": "${hostSystemName}", "toolchainFile": "${sourceDir}/cmake/toolchains/linux-gnu.cmake",
"rhs": "Windows"
} "displayName": "Linux (GNU)",
}, "description": "Create a build using the GNU toolchain for Linux",
{ "binaryDir": "${sourceDir}/build/gnu"
"name": "windows-default", },
"inherits": "windows-msvc", {
"displayName": "Windows only Configure Settings", "name": "macos",
"description": "Sets build and install directories", "inherits": "default",
"generator": "Ninja", "displayName": "MacOS",
"condition": { "description": "Create a build for MacOS",
"type": "equals", "condition": {
"lhs": "${hostSystemName}", "type": "equals",
"rhs": "Windows" "lhs": "${hostSystemName}",
}, "rhs": "Darwin"
"architecture": { },
"value": "x64" "binaryDir": "${sourceDir}/build/macos"
} }
}, ],
{ "testPresets": [
"name": "windows-msvc-clang", {
"inherits": [ "name": "default",
"windows-msvc", "configurePreset": "default",
"clang-config" "execution": {
], "jobs": 2
"displayName": "EXPERIMENTAL - [Multi] Windows (MSVC - Clang)", },
"description": "Create a build using the Clang toolchain for MSVC", "output": {
"binaryDir": "${sourceDir}/build/msvc-clang", "outputOnFailure": true
"toolset": "ClangCL" }
}, },
{ {
"name": "linux-config", "name": "windows-msvc-test",
"inherits": "default", "inherits": "default",
"hidden": true, "configurePreset": "windows-msvc",
"condition": { "hidden": true,
"type": "equals", "filter": {
"lhs": "${hostSystemName}", "exclude": {
"rhs": "Linux" "name": "((example)|(minigzip))+"
}
},
{
"name": "linux-clang-debug",
"inherits": [
"linux-config",
"clang-config",
"debug-config"
],
"displayName": "EXPERIMENTAL - [Debug] Linux (Clang)",
"description": "Create a debug build using the Clang toolchain for Linux",
"binaryDir": "${sourceDir}/build/clang-debug"
},
{
"name": "linux-clang-relwithdebinfo",
"inherits": [
"linux-config",
"clang-config",
"relwithdebinfo-config"
],
"displayName": "EXPERIMENTAL - [RelWithDebInfo] Linux (Clang)",
"description": "Create a release build with debug info using the Clang toolchain for Linux",
"binaryDir": "${sourceDir}/build/clang-relwithdebinfo"
},
{
"name": "linux-clang-release",
"inherits": [
"linux-config",
"clang-config",
"release-config"
],
"displayName": "EXPERIMENTAL - [Release] Linux (Clang)",
"description": "Create a release build using the Clang toolchain for Linux",
"binaryDir": "${sourceDir}/build/clang-release"
},
{
"name": "linux-gnu-debug",
"inherits": [
"linux-config",
"gnu-config",
"debug-config"
],
"displayName": "[Debug] Linux (GNU)",
"description": "Create a debug build using the GNU toolchain for Linux",
"binaryDir": "${sourceDir}/build/gnu-debug"
},
{
"name": "linux-gnu-relwithdebinfo",
"inherits": [
"linux-config",
"gnu-config",
"relwithdebinfo-config"
],
"displayName": "[RelWithDebInfo] Linux (GNU)",
"description": "Create a release build with debug info using the GNU toolchain for Linux",
"binaryDir": "${sourceDir}/build/gnu-relwithdebinfo"
},
{
"name": "linux-gnu-release",
"inherits": [
"linux-config",
"gnu-config",
"release-config"
],
"displayName": "[Release] Linux (GNU)",
"description": "Create a release build using the GNU toolchain for Linux",
"binaryDir": "${sourceDir}/build/gnu-release"
},
{
"name": "macos",
"inherits": "default",
"displayName": "[Multi] MacOS",
"description": "Create a build for MacOS",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Darwin"
},
"binaryDir": "${sourceDir}/build/macos"
} }
], }
"buildPresets": [ }
],
"workflowPresets": [
{
"name": "default",
"steps": [
{ {
"name": "default", "type": "configure",
"configurePreset": "default", "name": "default"
"displayName": "Default Build",
"description": "Default Build",
"jobs": 2
}, },
{ {
"name": "windows-msvc-debug", "type": "build",
"inherits": "default", "name": "default"
"configurePreset": "windows-msvc",
"displayName": "[Debug] Windows (MSVC)",
"description": "This preset is used to build in debug mode using the MSVC toolchain on Windows",
"configuration": "Debug"
}, },
{ {
"name": "windows-msvc-relwithdebinfo", "type": "test",
"inherits": "default", "name": "default"
"configurePreset": "windows-msvc",
"displayName": "[RelWithDebInfo] Windows (MSVC)",
"description": "This preset is used to build in debug mode using the MSVC toolchain on Windows",
"configuration": "RelWithDebInfo"
},
{
"name": "windows-msvc-release",
"inherits": "default",
"configurePreset": "windows-msvc",
"displayName": "[Release] Windows (MSVC)",
"description": "This preset is used to build in release mode using the MSVC toolchain on Windows",
"configuration": "Release"
},
{
"name": "windows-msvc-clang-debug",
"inherits": "default",
"configurePreset": "windows-msvc-clang",
"displayName": "EXPERIMENTAL - [Debug] Windows (MSVC - Clang)",
"description": "This preset is used to build in debug mode using the Clang toolchain on Windows MSVC",
"configuration": "Debug"
},
{
"name": "windows-msvc-clang-relwithdebinfo",
"inherits": "default",
"configurePreset": "windows-msvc-clang",
"displayName": "EXPERIMENTAL - [RelWithDebInfo] Windows (MSVC - Clang)",
"description": "This preset is used to build in debug mode using the Clang toolchain on Windows MSVC",
"configuration": "RelWithDebInfo"
},
{
"name": "windows-msvc-clang-release",
"inherits": "default",
"configurePreset": "windows-msvc-clang",
"displayName": "EXPERIMENTAL - [Release] Windows (MSVC - Clang)",
"description": "This preset is used to build in release mode using the Clang toolchain on Windows MSVC",
"configuration": "Release"
},
{
"name": "linux-clang-debug",
"inherits": "default",
"configurePreset": "linux-clang-debug",
"displayName": "EXPERIMENTAL - [Debug] Linux (Clang)",
"description": "This preset is used to build in debug mode using the Clang toolchain on Linux",
"configuration": "Debug"
},
{
"name": "linux-clang-relwithdebinfo",
"inherits": "default",
"configurePreset": "linux-clang-relwithdebinfo",
"displayName": "EXPERIMENTAL - [RelWithDebInfo] Linux (Clang)",
"description": "This preset is used to build in release mode with debug info using the Clang toolchain on Linux",
"configuration": "RelWithDebInfo"
},
{
"name": "linux-clang-release",
"inherits": "default",
"configurePreset": "linux-clang-release",
"displayName": "EXPERIMENTAL - [Release] Linux (Clang)",
"description": "This preset is used to build in release mode using the Clang toolchain on Linux",
"configuration": "Release"
},
{
"name": "linux-gnu-debug",
"inherits": "default",
"configurePreset": "linux-gnu-debug",
"displayName": "[Debug] Linux (GNU)",
"description": "This preset is used to build in debug mode using the GNU toolchain on Linux",
"configuration": "Debug"
},
{
"name": "linux-gnu-relwithdebinfo",
"inherits": "default",
"configurePreset": "linux-gnu-relwithdebinfo",
"displayName": "[RelWithDebInfo] Linux (GNU)",
"description": "This preset is used to build in release mode with debug info using the GNU toolchain on Linux",
"configuration": "RelWithDebInfo"
},
{
"name": "linux-gnu-release",
"inherits": "default",
"configurePreset": "linux-gnu-release",
"displayName": "[Release] Linux (GNU)",
"description": "This preset is used to build in release mode using the GNU toolchain on Linux",
"configuration": "Release"
},
{
"name": "macos-debug",
"inherits": "default",
"configurePreset": "macos",
"displayName": "[Debug] MacOS",
"description": "This preset is used to build in debug mode on MacOS",
"configuration": "Debug"
},
{
"name": "macos-relwithdebinfo",
"inherits": "default",
"configurePreset": "macos",
"displayName": "[RelWithDebInfo] MacOS",
"description": "This preset is used to build in release mode with debug info on MacOS",
"configuration": "RelWithDebInfo"
},
{
"name": "macos-release",
"inherits": "default",
"configurePreset": "macos",
"displayName": "[Release] MacOS",
"description": "This preset is used to build in release mode on MacOS",
"configuration": "Release"
} }
], ]
"testPresets": [ }
{ ]
"name": "default",
"configurePreset": "default",
"execution": {
"jobs": 2
},
"output": {
"outputOnFailure": true
}
},
{
"name": "windows-msvc-test",
"inherits": "default",
"configurePreset": "windows-msvc",
"hidden": true,
"filter": {
"exclude": {
"name": "((example)|(minigzip))+"
}
}
},
{
"name": "windows-msvc-debug",
"inherits": "windows-msvc-test",
"configurePreset": "windows-msvc",
"displayName": "[Debug] Windows (MSVC)",
"description": "Runs all tests on a Windows configuration",
"configuration": "Debug"
},
{
"name": "windows-msvc-relwithdebinfo",
"inherits": "windows-msvc-test",
"configurePreset": "windows-msvc",
"displayName": "[RelWithDebInfo] Windows (MSVC)",
"description": "Runs all tests on a Windows configuration",
"configuration": "RelWithDebInfo"
},
{
"name": "windows-msvc-release",
"inherits": "windows-msvc-test",
"configurePreset": "windows-msvc",
"displayName": "[Release] Windows (MSVC)",
"description": "Runs all tests on a Windows configuration",
"configuration": "Release"
},
{
"name": "windows-msvc-clang-debug",
"inherits": "windows-msvc-test",
"configurePreset": "windows-msvc-clang",
"displayName": "EXPERIMENTAL - [Debug] Windows (MSVC - Clang)",
"description": "Runs all tests on a Windows Clang configuration",
"configuration": "Debug"
},
{
"name": "windows-msvc-clang-relwithdebinfo",
"inherits": "windows-msvc-test",
"configurePreset": "windows-msvc-clang",
"displayName": "EXPERIMENTAL - [RelWithDebInfo] Windows (MSVC - Clang)",
"description": "Runs all tests on a Windows Clang configuration",
"configuration": "RelWithDebInfo"
},
{
"name": "windows-msvc-clang-release",
"inherits": "windows-msvc-test",
"configurePreset": "windows-msvc-clang",
"displayName": "EXPERIMENTAL - [Release] Windows (MSVC - Clang)",
"description": "Runs all tests on a Windows Clang configuration",
"configuration": "Release"
},
{
"name": "linux-clang-debug",
"inherits": "default",
"configurePreset": "linux-clang-debug",
"displayName": "EXPERIMENTAL - [Debug] Linux (Clang)",
"description": "Runs all tests on a Linux Clang configuration",
"configuration": "Release"
},
{
"name": "linux-clang-relwithdebinfo",
"inherits": "default",
"configurePreset": "linux-clang-relwithdebinfo",
"displayName": "EXPERIMENTAL - [RelWithDebInfo] Linux (Clang)",
"description": "Runs all tests on a Linux Clang configuration",
"configuration": "RelWithDebInfo"
},
{
"name": "linux-clang-release",
"inherits": "default",
"configurePreset": "linux-clang-release",
"displayName": "EXPERIMENTAL - [Release] Linux (Clang)",
"description": "Runs all tests on a Linux Clang configuration",
"configuration": "Release"
},
{
"name": "linux-gnu-debug",
"inherits": "default",
"configurePreset": "linux-gnu-debug",
"displayName": "[Debug] Linux (GNU)",
"description": "Runs all tests on a Linux GNU configuration",
"configuration": "Release"
},
{
"name": "linux-gnu-relwithdebinfo",
"inherits": "default",
"configurePreset": "linux-gnu-relwithdebinfo",
"displayName": "[RelWithDebInfo] Linux (GNU)",
"description": "Runs all tests on a Linux GNU configuration",
"configuration": "RelWithDebInfo"
},
{
"name": "linux-gnu-release",
"inherits": "default",
"configurePreset": "linux-gnu-release",
"displayName": "[Release] Linux (GNU)",
"description": "Runs all tests on a Linux GNU configuration",
"configuration": "Release"
},
{
"name": "macos-debug",
"inherits": "default",
"configurePreset": "macos",
"displayName": "[Debug] MacOS",
"description": "Runs all tests on a MacOS configuration",
"configuration": "Debug"
},
{
"name": "macos-relwithdebinfo",
"inherits": "default",
"configurePreset": "macos",
"displayName": "[RelWithDebInfo] MacOS",
"description": "Runs all tests on a MacOS configuration",
"configuration": "RelWithDebInfo"
},
{
"name": "macos-release",
"inherits": "default",
"configurePreset": "macos",
"displayName": "[Release] MacOS",
"description": "Runs all tests on a MacOS configuration",
"configuration": "Release"
}
],
"workflowPresets": [
{
"name": "default",
"steps": [
{
"type": "configure",
"name": "default"
},
{
"type": "build",
"name": "default"
},
{
"type": "test",
"name": "default"
}
]
},
{
"name": "windows-msvc-debug",
"displayName": "[Debug] Windows (MSVC)",
"description": "MSVC debug workflow preset for Windows",
"steps": [
{
"type": "configure",
"name": "windows-msvc"
},
{
"type": "build",
"name": "windows-msvc-debug"
},
{
"type": "test",
"name": "windows-msvc-debug"
}
]
},
{
"name": "windows-msvc-relwithdebinfo",
"displayName": "[RelWithDebInfo] Windows (MSVC)",
"description": "MSVC release with debug info workflow preset for Windows",
"steps": [
{
"type": "configure",
"name": "windows-msvc"
},
{
"type": "build",
"name": "windows-msvc-relwithdebinfo"
},
{
"type": "test",
"name": "windows-msvc-relwithdebinfo"
}
]
},
{
"name": "ci-windows-2022",
"displayName": "[Release] Windows (MSVC)",
"description": "CI workflow preset for Windows",
"steps": [
{
"type": "configure",
"name": "windows-msvc"
},
{
"type": "build",
"name": "windows-msvc-release"
},
{
"type": "test",
"name": "windows-msvc-release"
}
]
},
{
"name": "linux-gnu-debug",
"displayName": "[Debug] Linux (GNU)",
"description": "GNU debug workflow preset for Linux",
"steps": [
{
"type": "configure",
"name": "linux-gnu-debug"
},
{
"type": "build",
"name": "linux-gnu-debug"
},
{
"type": "test",
"name": "linux-gnu-debug"
}
]
},
{
"name": "linux-gnu-relwithdebinfo",
"displayName": "[RelWithDebInfo] Linux (GNU)",
"description": "GNU release with debug info workflow preset for Linux",
"steps": [
{
"type": "configure",
"name": "linux-gnu-relwithdebinfo"
},
{
"type": "build",
"name": "linux-gnu-relwithdebinfo"
},
{
"type": "test",
"name": "linux-gnu-relwithdebinfo"
}
]
},
{
"name": "ci-ubuntu-22.04",
"displayName": "[Release] Linux (GNU)",
"description": "CI workflow preset for Ubuntu",
"steps": [
{
"type": "configure",
"name": "linux-gnu-release"
},
{
"type": "build",
"name": "linux-gnu-release"
},
{
"type": "test",
"name": "linux-gnu-release"
}
]
},
{
"name": "linux-clang-debug",
"displayName": "EXPERIMENTAL - [Debug] Linux (Clang)",
"description": "Clang debug workflow preset for Linux",
"steps": [
{
"type": "configure",
"name": "linux-clang-debug"
},
{
"type": "build",
"name": "linux-clang-debug"
},
{
"type": "test",
"name": "linux-clang-debug"
}
]
},
{
"name": "linux-clang-relwithdebinfo",
"displayName": "EXPERIMENTAL - [RelWithDebInfo] Linux (Clang)",
"description": "Clang release with debug info workflow preset for Linux",
"steps": [
{
"type": "configure",
"name": "linux-clang-relwithdebinfo"
},
{
"type": "build",
"name": "linux-clang-relwithdebinfo"
},
{
"type": "test",
"name": "linux-clang-relwithdebinfo"
}
]
},
{
"name": "linux-clang-release",
"displayName": "EXPERIMENTAL - [Release] Linux (Clang)",
"description": "Clang release workflow preset for Linux",
"steps": [
{
"type": "configure",
"name": "linux-clang-release"
},
{
"type": "build",
"name": "linux-clang-release"
},
{
"type": "test",
"name": "linux-clang-release"
}
]
},
{
"name": "macos-debug",
"displayName": "[Debug] MacOS",
"description": "Release workflow preset for MacOS",
"steps": [
{
"type": "configure",
"name": "macos"
},
{
"type": "build",
"name": "macos-debug"
},
{
"type": "test",
"name": "macos-debug"
}
]
},
{
"name": "macos-relwithdebinfo",
"displayName": "[RelWithDebInfo] MacOS",
"description": "Release with debug info workflow preset for MacOS",
"steps": [
{
"type": "configure",
"name": "macos"
},
{
"type": "build",
"name": "macos-relwithdebinfo"
},
{
"type": "test",
"name": "macos-relwithdebinfo"
}
]
},
{
"name": "ci-macos-13",
"displayName": "[Release] MacOS",
"description": "CI workflow preset for MacOS",
"steps": [
{
"type": "configure",
"name": "macos"
},
{
"type": "build",
"name": "macos-release"
},
{
"type": "test",
"name": "macos-release"
}
]
}
]
} }

View File

@ -45,11 +45,14 @@ if (UNIX)
elseif (WIN32) elseif (WIN32)
include(FetchContent) include(FetchContent)
set(WITH_GTEST OFF CACHE BOOL "" FORCE)
set(ZLIB_ENABLE_TESTS OFF CACHE BOOL "" FORCE)
# TODO Keep an eye on the zlib repository for an update to disable testing. Don't forget to update CMakePresets # TODO Keep an eye on the zlib repository for an update to disable testing. Don't forget to update CMakePresets
FetchContent_Declare( FetchContent_Declare(
zlib zlib
URL https://github.com/madler/zlib/archive/refs/tags/v1.2.11.zip URL https://github.com/zlib-ng/zlib-ng/archive/refs/tags/2.2.2.zip
URL_HASH MD5=9d6a627693163bbbf3f26403a3a0b0b1 URL_HASH MD5=2cf9199fb785ea579a2a9905a75c38b3
) )
# Disable warning about no project version. # Disable warning about no project version.
@ -60,7 +63,6 @@ elseif (WIN32)
FetchContent_MakeAvailable(zlib) FetchContent_MakeAvailable(zlib)
set(ZLIB_INCLUDE_DIRS ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR}) set(ZLIB_INCLUDE_DIRS ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR})
set_target_properties(zlib PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${ZLIB_INCLUDE_DIRS}")
add_library(ZLIB::ZLIB ALIAS zlib) add_library(ZLIB::ZLIB ALIAS zlib)
else () else ()
message( message(