diff --git a/.gitignore b/.gitignore index 7002668a..cbe7e26d 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,7 @@ install_manifest.txt compile_commands.json CTestTestfile.cmake _deps + +# Editor directories +.idea/ +.vs/ diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 00000000..ff3d87ec --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,205 @@ +{ + "version": 5, + "cmakeMinimumRequired": { + "major": 3, + "minor": 24, + "patch": 0 + }, + "configurePresets": [ + { + "name": "base", + "hidden": true, + "generator": "Ninja", + "binaryDir": "${sourceDir}/build/${presetName}", + "cacheVariables": { + "CMAKE_PROJECT_TOP_LEVEL_INCLUDES": "${sourceDir}/external/cmake-conan/conan_provider.cmake" + } + }, + { + "name": "windows-base", + "inherits": "base", + "hidden": true, + "condition": { + "type": "equals", + "lhs": "${hostSystemName}", + "rhs": "Windows" + }, + "vendor": { + "microsoft.com/VisualStudioSettings/CMake/1.0": { + "enableClangTidyCodeAnalysis": true, + "hostOS": [ + "Windows" + ] + } + } + }, + { + "name": "windows-x64-base", + "inherits": "windows-base", + "hidden": true + }, + { + "name": "linux-base", + "inherits": "base", + "hidden": true, + "condition": { + "type": "equals", + "lhs": "${hostSystemName}", + "rhs": "Linux" + } + }, + { + "name": "windows-msvc2022-x64-base", + "inherits": "windows-x64-base", + "hidden": true, + "cacheVariables": { + "CMAKE_PREFIX_PATH": "C:/Qt/6.8.3/msvc2022_64", + "CONAN_HOST_PROFILE": "scwx-windows_msvc2022_x64", + "CONAN_BUILD_PROFILE": "scwx-windows_msvc2022_x64" + } + }, + { + "name": "linux-gcc-base", + "inherits": "linux-base", + "hidden": true, + "cacheVariables": { + "CMAKE_PREFIX_PATH": "/opt/Qt/6.8.3/gcc_64", + "CONAN_HOST_PROFILE": "scwx-linux_gcc-11", + "CONAN_BUILD_PROFILE": "scwx-linux_gcc-11" + }, + "environment": { + "CC": "gcc-11", + "CXX": "g++-11" + } + }, + { + "name": "windows-msvc2022-x64-debug", + "inherits": "windows-msvc2022-x64-base", + "displayName": "Windows MSVC 2022 x64 Debug", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" + } + }, + { + "name": "windows-msvc2022-x64-release", + "inherits": "windows-msvc2022-x64-base", + "displayName": "Windows MSVC 2022 x64 Release", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release" + } + }, + { + "name": "linux-gcc-debug", + "inherits": "linux-gcc-base", + "displayName": "Linux GCC Debug", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/${presetName}/Debug/supercell-wx" + } + }, + { + "name": "linux-gcc-release", + "inherits": "linux-gcc-base", + "displayName": "Linux GCC Release", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release", + "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/${presetName}/Release/supercell-wx" + } + }, + { + "name": "ci-linux-gcc14", + "inherits": "linux-gcc-base", + "displayName": "CI Linux GCC 14", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release", + "CONAN_HOST_PROFILE": "scwx-linux_gcc-14", + "CONAN_BUILD_PROFILE": "scwx-linux_gcc-14" + }, + "environment": { + "CC": "gcc-14", + "CXX": "g++-14" + } + }, + { + "name": "ci-linux-clang17", + "inherits": "linux-gcc-base", + "displayName": "CI Linux Clang 17", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release", + "CONAN_HOST_PROFILE": "scwx-linux_clang-17", + "CONAN_BUILD_PROFILE": "scwx-linux_clang-17" + }, + "environment": { + "CC": "clang-17", + "CXX": "clang++-17" + } + }, + { + "name": "ci-linux-gcc-arm64", + "inherits": "linux-gcc-base", + "displayName": "CI Linux GCC ARM64", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release", + "CONAN_HOST_PROFILE": "scwx-linux_gcc-11_armv8", + "CONAN_BUILD_PROFILE": "scwx-linux_gcc-11_armv8", + "CMAKE_PREFIX_PATH": "/opt/Qt/6.8.3/gcc_arm64" + }, + "environment": { + "CC": "gcc-11", + "CXX": "g++-11" + } + } + ], + "buildPresets": [ + { + "name": "windows-msvc2022-x64-debug", + "configurePreset": "windows-msvc2022-x64-debug", + "displayName": "Windows MSVC 2022 x64 Debug", + "configuration": "Debug" + }, + { + "name": "windows-msvc2022-x64-release", + "configurePreset": "windows-msvc2022-x64-release", + "displayName": "Windows MSVC 2022 x64 Release", + "configuration": "Release" + }, + { + "name": "linux-gcc-debug", + "configurePreset": "linux-gcc-debug", + "displayName": "Linux GCC Debug", + "configuration": "Debug" + }, + { + "name": "linux-gcc-release", + "configurePreset": "linux-gcc-release", + "displayName": "Linux GCC Release", + "configuration": "Release" + } + ], + "testPresets": [ + { + "name": "windows-msvc2022-x64-debug", + "configurePreset": "windows-msvc2022-x64-debug", + "displayName": "Windows MSVC 2022 x64 Debug", + "configuration": "Debug" + }, + { + "name": "windows-msvc2022-x64-release", + "configurePreset": "windows-msvc2022-x64-release", + "displayName": "Windows MSVC 2022 x64 Release", + "configuration": "Release" + }, + { + "name": "linux-gcc-debug", + "configurePreset": "linux-gcc-debug", + "displayName": "Linux GCC Debug", + "configuration": "Debug" + }, + { + "name": "linux-gcc-release", + "configurePreset": "linux-gcc-release", + "displayName": "Linux GCC Release", + "configuration": "Release" + } + ] +} \ No newline at end of file diff --git a/tools/configure-environment.bat b/tools/configure-environment.bat index 043c84f7..0a8e5cee 100644 --- a/tools/configure-environment.bat +++ b/tools/configure-environment.bat @@ -16,7 +16,7 @@ :: Install Conan profiles @for /L %%i in (0,1,!last_profile!) do @( set "profile_name=!conan_profile[%%i]!" - conan config install "%script_dir%\conan\profiles\%profile_name%" -tf profiles + conan config install "%script_dir%\conan\profiles\!profile_name!" -tf profiles ) @pause