diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 157ce215..38415ab0 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -18,10 +18,12 @@ jobs: title: "Development Build" vanilla-linux: - runs-on: ubuntu-18.04 + runs-on: ${{ matrix.os }} strategy: matrix: platform: [clang, gcc] + networking: [net, nonet] + os: [ubuntu-18.04, ubuntu-20.04] steps: - uses: actions/checkout@v2 @@ -49,14 +51,14 @@ jobs: - name: Install dependencies run: | sudo apt-get update -qq > /dev/null - sudo apt-get install -qq -y clang-format-10 libsdl2-dev libopenal-dev > /dev/null + sudo apt-get install -qq -y clang-format-10 libsdl2-dev libopenal-dev ninja-build > /dev/null - name: Configure Vanilla Conquer env: CC: ${{ steps.vars.outputs.cc }} CXX: ${{ steps.vars.outputs.cxx }} run: | - cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DMAP_EDITORTD=ON -DMAP_EDITORRA=ON -DBUILD_TOOLS=ON -DBUILD_TESTS=ON -B build + cmake --preset ${{ matrix.platform }}-vanilla-${{ matrix.networking }}-tests - name: Check formatting if: ${{ matrix.platform }} == clang @@ -66,7 +68,7 @@ jobs: - name: Build Vanilla Conquer run: | - cmake --build build -- -j 4 + cmake --build build cp ./build/vanillatd ./build/vanillatd.dbg cp ./build/vanillara ./build/vanillara.dbg cp ./build/vanillamix ./build/vanillamix.dbg @@ -83,19 +85,21 @@ jobs: ctest - name: Create archives + if: ${{ matrix.networking == 'net' }} run: | mkdir artifact - 7z a artifact/vanilla-conquer-linux-${{ matrix.platform }}-x86_64-${{ steps.gitinfo.outputs.sha_short }}.zip ./build/vanillatd ./build/vanillara ./build/vanillamix - 7z a artifact/vanilla-conquer-linux-${{ matrix.platform }}-x86_64-${{ steps.gitinfo.outputs.sha_short }}-debug.zip ./build/vanillatd.dbg ./build/vanillara.dbg ./build/vanillamix.dbg + 7z a artifact/vanilla-conquer-linux-${{ matrix.platform }}-${{ matrix.os }}-x86_64-${{ steps.gitinfo.outputs.sha_short }}.zip ./build/vanillatd ./build/vanillara ./build/vanillamix + 7z a artifact/vanilla-conquer-linux-${{ matrix.platform }}-${{ matrix.os }}-x86_64-${{ steps.gitinfo.outputs.sha_short }}-debug.zip ./build/vanillatd.dbg ./build/vanillara.dbg ./build/vanillamix.dbg - name: Upload artifact + if: ${{ matrix.networking == 'net' }} uses: actions/upload-artifact@v2 with: - name: vanilla-conquer-linux-${{ matrix.platform }}-x86_64 + name: vanilla-conquer-linux-${{ matrix.platform }}-${{ matrix.os }}-x86_64 path: artifact - name: Upload development release - if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/vanilla' }} + if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/vanilla' && matrix.networking == 'net' }} uses: softprops/action-gh-release@v1 with: name: Development Build @@ -107,7 +111,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload tagged release - if: ${{ startsWith(github.ref, 'refs/tags/') }} + if: ${{ startsWith(github.ref, 'refs/tags/') && matrix.networking == 'net' }} uses: softprops/action-gh-release@v1 with: files: | diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index f7d21438..a2a8bf08 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -7,6 +7,10 @@ on: jobs: vanilla-macos: runs-on: macos-10.15 + + strategy: + matrix: + networking: [net, nonet] steps: - uses: actions/checkout@v2 @@ -29,7 +33,7 @@ jobs: - name: Configure Vanilla Conquer run: | - cmake -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DMAP_EDITORTD=ON -DMAP_EDITORRA=ON -DBUILD_TOOLS=ON -B build + cmake --preset clang-vanilla-${{ matrix.networking }}-tests - name: Build Vanilla Conquer run: | @@ -44,19 +48,21 @@ jobs: dylibbundler --create-dir --bundle-deps --overwrite-files --dest-dir ./build/vanillara.app/Contents/libs --fix-file build/vanillara.app/Contents/MacOS/vanillara - name: Create archives + if: ${{ matrix.networking == 'net' }} run: | mkdir artifact 7z a artifact/vanilla-conquer-macos-clang-x86_64-${{ steps.gitinfo.outputs.sha_short }}.zip ./build/vanillatd.app ./build/vanillara.app ./build/vanillamix 7z a artifact/vanilla-conquer-macos-clang-x86_64-${{ steps.gitinfo.outputs.sha_short }}-debug.zip ./build/vanillatd.dSYM ./build/vanillara.dSYM ./build/vanillamix.dSYM - name: Upload artifact + if: ${{ matrix.networking == 'net' }} uses: actions/upload-artifact@v2 with: name: vanilla-conquer-macos-clang-x86_64 path: artifact - name: Upload development release - if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/vanilla' }} + if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/vanilla' && matrix.networking == 'net' }} uses: softprops/action-gh-release@v1 with: name: Development Build @@ -68,7 +74,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload tagged release - if: ${{ startsWith(github.ref, 'refs/tags/') }} + if: ${{ startsWith(github.ref, 'refs/tags/') && matrix.networking == 'net' }} uses: softprops/action-gh-release@v1 with: files: | diff --git a/.github/workflows/mingw.yml b/.github/workflows/mingw.yml index f2ad6d4f..0d53119b 100644 --- a/.github/workflows/mingw.yml +++ b/.github/workflows/mingw.yml @@ -21,11 +21,11 @@ jobs: - name: Install Dependencies run: | sudo apt-get update -qq > /dev/null - sudo apt-get install -qq -y mingw-w64 > /dev/null + sudo apt-get install -qq -y ninja-build mingw-w64 > /dev/null - name: Configure Vanilla Conquer run: | - cmake -DCMAKE_TOOLCHAIN_FILE=cmake/i686-mingw-w64-toolchain.cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_REMASTERTD=ON -DBUILD_REMASTERRA=ON -DBUILD_VANILLATD=OFF -DBUILD_VANILLARA=OFF -DNETWORKING=OFF -B build + cmake --preset mingw-i686-remaster -B build - name: Build Vanilla Conquer run: | @@ -58,6 +58,7 @@ jobs: strategy: matrix: platform: [x86, amd64] + networking: [net, nonet] steps: - uses: actions/checkout@v2 @@ -85,7 +86,7 @@ jobs: - name: Install Dependencies run: | sudo apt-get update -qq > /dev/null - sudo apt-get install -qq -y mingw-w64 imagemagick > /dev/null + sudo apt-get install -qq -y ninja-build mingw-w64 imagemagick > /dev/null wget -q https://www.libsdl.org/release/SDL2-devel-2.0.12-mingw.tar.gz wget -q https://www.openal-soft.org/openal-binaries/openal-soft-1.21.0-bin.zip tar -xf SDL2-devel-2.0.12-mingw.tar.gz -C /tmp @@ -94,11 +95,11 @@ jobs: - name: Configure Vanilla Conquer run: | - cmake -DCMAKE_TOOLCHAIN_FILE=cmake/${{ steps.vars.outputs.arc_path }}-mingw-w64-toolchain.cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DSDL2=ON -DSDL2_ROOT_DIR=/tmp/SDL2-2.0.12 -DSDL2_INCLUDE_DIR=/tmp/SDL2-2.0.12/${{ steps.vars.outputs.arc_path }}-w64-mingw32/include/SDL2 -DSDL2_LIBRARY=/tmp/SDL2-2.0.12/${{ steps.vars.outputs.arc_path }}-w64-mingw32/lib/libSDL2.dll.a -DSDL2_SDLMAIN_LIBRARY=/tmp/SDL2-2.0.12/${{ steps.vars.outputs.arc_path }}-w64-mingw32/lib/libSDL2main.a -DSDL2_RUNTIME_LIBRARY=/tmp/SDL2-2.0.12/${{ steps.vars.outputs.arc_path }}-w64-mingw32/bin/SDL2.dll -DOPENAL=ON -DOPENAL_ROOT=/tmp/openal-soft-1.21.0-bin -DOPENAL_INCLUDE_DIR=/tmp/openal-soft-1.21.0-bin/include/AL -DOPENAL_LIBRARY=/tmp/openal-soft-1.21.0-bin/libs/${{ steps.vars.outputs.oal_path }}/libOpenAL32.dll.a -DOPENAL_RUNTIME_LIBRARY=/tmp/openal-soft-1.21.0-bin/bin/${{ steps.vars.outputs.oal_path }}/OpenAL32.dll -DBUILD_TOOLS=ON -DBUILD_REMASTERTD=OFF -DBUILD_REMASTERRA=OFF -DMAP_EDITORTD=ON -DMAP_EDITORRA=ON -DImageMagick_convert_EXECUTABLE=/usr/bin/convert -DImageMagick_convert_FOUND=TRUE -B build + cmake --preset mingw-${{ steps.vars.outputs.arc_path }}-vanilla -DSDL2_ROOT_DIR=/tmp/SDL2-2.0.12 -DSDL2_INCLUDE_DIR=/tmp/SDL2-2.0.12/${{ steps.vars.outputs.arc_path }}-w64-mingw32/include/SDL2 -DSDL2_LIBRARY=/tmp/SDL2-2.0.12/${{ steps.vars.outputs.arc_path }}-w64-mingw32/lib/libSDL2.dll.a -DSDL2_SDLMAIN_LIBRARY=/tmp/SDL2-2.0.12/${{ steps.vars.outputs.arc_path }}-w64-mingw32/lib/libSDL2main.a -DSDL2_RUNTIME_LIBRARY=/tmp/SDL2-2.0.12/${{ steps.vars.outputs.arc_path }}-w64-mingw32/bin/SDL2.dll -DOPENAL=ON -DOPENAL_ROOT=/tmp/openal-soft-1.21.0-bin -DOPENAL_INCLUDE_DIR=/tmp/openal-soft-1.21.0-bin/include/AL -DOPENAL_LIBRARY=/tmp/openal-soft-1.21.0-bin/libs/${{ steps.vars.outputs.oal_path }}/libOpenAL32.dll.a -DOPENAL_RUNTIME_LIBRARY=/tmp/openal-soft-1.21.0-bin/bin/${{ steps.vars.outputs.oal_path }}/OpenAL32.dll -DImageMagick_convert_EXECUTABLE=/usr/bin/convert -DImageMagick_convert_FOUND=TRUE - name: Build Vanilla Conquer run: | - cmake --build build -- -j 4 + cmake --build build cp ./build/vanillatd.exe ./build/vanillatd.dbg cp ./build/vanillara.exe ./build/vanillara.dbg cp ./build/vanillamix.exe ./build/vanillamix.dbg diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index d26914e8..1be317ad 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -14,7 +14,7 @@ jobs: fetch-depth: 0 ref: ${{ github.event.pull_request.head.sha }} - - uses: ilammy/msvc-dev-cmd@v1.4.1 + - uses: ilammy/msvc-dev-cmd@v1.10.0 with: arch: x86 @@ -31,11 +31,11 @@ jobs: - name: Configure Vanilla Conquer run: | - cmake -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_REMASTERTD=ON -DBUILD_REMASTERRA=ON -DBUILD_VANILLATD=OFF -DBUILD_VANILLARA=OFF -DNETWORKING=OFF -B build + cmake --preset cl-remaster - name: Build Vanilla Conquer run: | - cmake --build build --config RelWithDebInfo + cmake --build build - name: Create archives shell: bash @@ -78,6 +78,7 @@ jobs: strategy: matrix: platform: [x86, amd64] + networking: [net, nonet] steps: - uses: actions/checkout@v2 with: @@ -85,7 +86,7 @@ jobs: fetch-depth: 0 ref: ${{ github.event.pull_request.head.sha }} - - uses: ilammy/msvc-dev-cmd@v1.4.1 + - uses: ilammy/msvc-dev-cmd@v1.10.0 with: arch: ${{ matrix.platform }} @@ -123,19 +124,20 @@ jobs: - name: Configure Vanilla Conquer run: | - cmake -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TOOLS=ON -DBUILD_TESTS=ON -DSDL2=ON "-DSDL2_ROOT_DIR=$($Env:TEMP)\SDL2-2.0.12" -DOPENAL=ON "-DOPENAL_ROOT=C:\Program Files (x86)\OpenAL 1.1 SDK" -DBUILD_REMASTERTD=OFF -DBUILD_REMASTERRA=OFF -DMAP_EDITORTD=ON -DMAP_EDITORRA=ON "-DImageMagick_convert_EXECUTABLE=C:\Program Files\ImageMagick-7.0.10-Q16-HDRI\magick.exe" -DImageMagick_convert_FOUND=TRUE -B build + cmake --preset cl-vanilla-${{ matrix.networking }}-tests "-DSDL2_ROOT_DIR=$($Env:TEMP)\SDL2-2.0.12" "-DOPENAL_ROOT=C:\Program Files (x86)\OpenAL 1.1 SDK" "-DImageMagick_convert_EXECUTABLE=C:\Program Files\ImageMagick-7.0.10-Q16-HDRI\magick.exe" -DImageMagick_convert_FOUND=TRUE - name: Build Vanilla Conquer run: | - cmake --build build --config RelWithDebInfo + cmake --build build - name: Run unit tests run: | cd build Copy-Item -Path "$Env:TEMP\SDL2-2.0.12\lib\${{ steps.vars.outputs.sdl_path }}\SDL2.dll" -Destination . -verbose - ctest -C RelWithDebInfo + ctest -C Release - name: Create archives + if: ${{ matrix.networking == 'net' }} shell: bash run: | mkdir artifact @@ -143,13 +145,14 @@ jobs: 7z a artifact/vanilla-conquer-win-msvc-${{ steps.vars.outputs.arc_path }}-${{ steps.gitinfo.outputs.sha_short }}-debug.zip ./build/vanillatd.pdb ./build/vanillara.pdb ./build/vanillamix.pdb - name: Upload artifact + if: ${{ matrix.networking == 'net' }} uses: actions/upload-artifact@v2 with: name: vanilla-conquer-win-msvc-${{ steps.vars.outputs.arc_path }} path: artifact - name: Upload development release - if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/vanilla' }} + if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/vanilla' && matrix.networking == 'net' }} uses: softprops/action-gh-release@v1 with: name: Development Build @@ -161,7 +164,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload tagged release - if: ${{ startsWith(github.ref, 'refs/tags/') }} + if: ${{ startsWith(github.ref, 'refs/tags/') && matrix.networking == 'net' }} uses: softprops/action-gh-release@v1 with: files: | diff --git a/.gitignore b/.gitignore index 0ec9e7f9..80c85526 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /build* +/CMakeUserPresets.json diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a230345..3c021ea9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/") include(FeatureSummary) if(NOT DEFINED CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE) + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE) endif() project(VanillaConquer CXX) @@ -69,20 +69,6 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) -if(NOT MSVC) - if(WIN32) - set(CMAKE_CXX_FLAGS_DEBUG "-gstabs3") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive") - set(STATIC_LIBS "-static-libstdc++ -static-libgcc") - else() - set(CMAKE_CXX_FLAGS_DEBUG "-g3") - endif() - - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w -Wwrite-strings -Werror=write-strings -fcheck-new -fsigned-char -fdata-sections -ffunction-sections -DNOMINMAX") -else() - set(CMAKE_CXX_FLAGS "/Zc:strictStrings") -endif() - add_definitions(-DENGLISH -DTRUE_FALSE_DEFINED) if(WIN32) diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 00000000..8e2eaf98 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,224 @@ +{ + "version": 2, + "cmakeMinimumRequired": { + "major": 3, + "minor": 20, + "patch": 0 + }, + "configurePresets": [ + { + "name": "default", + "displayName": "Default Config", + "generator": "Ninja", + "hidden": true, + "binaryDir": "${sourceDir}/build", + "cacheVariables": { + "DSOUND": "OFF", + "DDRAW": "OFF", + "SDL2": "ON", + "OPENAL": "ON", + "CMAKE_BUILD_TYPE": "Release" + } + }, + { + "name": "default-win", + "inherits": "default", + "displayName": "MSVC defaults", + "hidden": true, + "cacheVariables": { + "VC_CXX_FLAGS": "/Zc:strictStrings", + "CMAKE_CXX_FLAGS_RELEASE": "/MD /Zi /O2 /Ob2 /DNDEBUG", + "CMAKE_EXE_LINKER_FLAGS_RELEASE": "/debug:full /INCREMENTAL:NO", + "CMAKE_MODULE_LINKER_FLAGS_RELEASE": "/debug:full /INCREMENTAL:NO", + "CMAKE_SHARED_LINKER_FLAGS_RELEASE": "/debug:full /INCREMENTAL:NO" + } + }, + { + "name": "cl-remaster", + "inherits": "default-win", + "displayName": "MSVC Remaster build", + "cacheVariables": { + "BUILD_REMASTERTD": "ON", + "BUILD_REMASTERRA": "ON", + "BUILD_VANILLATD": "OFF", + "BUILD_VANILLARA": "OFF", + "MAP_EDITORTD": "OFF", + "MAP_EDITORRA": "OFF", + "BUILD_TOOLS": "OFF" + } + }, + { + "name": "cl-vanilla", + "inherits": "default-win", + "displayName": "MSVC Vanilla build", + "cacheVariables": { + "BUILD_REMASTERTD": "OFF", + "BUILD_REMASTERRA": "OFF", + "MAP_EDITORTD": "ON", + "MAP_EDITORRA": "ON", + "BUILD_TOOLS": "ON" + } + }, + { + "name": "cl-vanilla-net-tests", + "inherits": "cl-vanilla", + "displayName": "MSVC Vanilla build with tests", + "cacheVariables": { + "BUILD_TEST": "ON" + } + }, + { + "name": "cl-vanilla-nonet-tests", + "inherits": "cl-vanilla-net-tests", + "displayName": "MSVC Vanilla build with tests and no networking", + "cacheVariables": { + "NETWORKING": "OFF" + } + }, + { + "name": "msvc2019-i686-remaster", + "inherits": "cl-remaster", + "binaryDir": "${sourceDir}/build_remaster", + "displayName": "MSVC 2019 32bit Remaster build", + "generator": "Visual Studio 16 2019", + "architecture": "Win32" + }, + { + "name": "msvc2019-i686-vanilla", + "inherits": "cl-vanilla", + "binaryDir": "${sourceDir}/build_msvc32", + "displayName": "MSVC 2019 32bit Vanilla build", + "generator": "Visual Studio 16 2019", + "architecture": "Win32" + }, + { + "name": "msvc2019-x86-64-vanilla", + "inherits": "cl-vanilla", + "binaryDir": "${sourceDir}/build_msvc64", + "displayName": "MSVC 2019 64bit Vanilla build", + "architecture": "x64" + }, + { + "name": "default-unix", + "inherits": "default", + "hidden": true, + "displayName": "UNIX defaults", + "cacheVariables": { + "CMAKE_CXX_FLAGS_DEBUG": "-g3 -Og", + "CMAKE_C_FLAGS_DEBUG": "-g3 -Og", + "CMAKE_CXX_FLAGS_RELEASE": "-O3 -g3 -DNDEBUG", + "CMAKE_C_FLAGS_RELEASE": "-O3 -g3 -DNDEBUG", + "VC_CXX_FLAGS": "-w;-Wwrite-strings;-Werror=write-strings;-fcheck-new;-fsigned-char", + "MAP_EDITORTD": "ON", + "MAP_EDITORRA": "ON", + "BUILD_TOOLS": "ON" + } + }, + { + "name": "gcc-vanilla", + "inherits": "default-unix", + "displayName": "GCC Vanilla build", + "environment": { + "CC": "gcc", + "CXX": "g++" + } + }, + { + "name": "gcc-vanilla-net-tests", + "inherits": "gcc-vanilla", + "displayName": "GCC Vanilla build with tests", + "cacheVariables": { + "BUILD_TEST": "ON" + } + }, + { + "name": "gcc-vanilla-nonet-tests", + "inherits": "gcc-vanilla-net-tests", + "displayName": "GCC Vanilla build with tests", + "cacheVariables": { + "NETWORKING": "OFF" + } + }, + { + "name": "clang-vanilla", + "inherits": "default-unix", + "displayName": "Clang Vanilla build", + "environment": { + "CC": "clang", + "CXX": "clang++" + } + }, + { + "name": "clang-vanilla-net-tests", + "inherits": "clang-vanilla", + "displayName": "Clang Vanilla build with tests", + "cacheVariables": { + "BUILD_TEST": "ON" + } + }, + { + "name": "clang-vanilla-nonet-tests", + "inherits": "clang-vanilla-net-tests", + "displayName": "Clang Vanilla build with tests", + "cacheVariables": { + "NETWORKING": "OFF" + } + }, + { + "name": "default-mingw", + "inherits": "default", + "hidden": true, + "displayName": "MinGW-w64 defaults", + "cacheVariables": { + "CMAKE_CXX_FLAGS_DEBUG": "-gstabs3 -Og", + "CMAKE_C_FLAGS_DEBUG": "-gstabs3 -Og", + "CMAKE_CXX_FLAGS_RELEASE": "-O3 -gstabs3 -DNDEBUG", + "CMAKE_C_FLAGS_RELEASE": "-O3 -gstabs3 -DNDEBUG", + "VC_CXX_FLAGS": "-static-libstdc++;-static-libgcc;-fpermissive;-w;-Wwrite-strings;-Werror=write-strings;-fcheck-new;-fsigned-char;-DNOMINMAX", + "MAP_EDITORTD": "ON", + "MAP_EDITORRA": "ON", + "BUILD_TOOLS": "ON" + } + }, + { + "name": "mingw-i686-remaster", + "inherits": "default-mingw", + "displayName": "MinGW-w64 32bit Remaster build", + "cacheVariables": { + "CMAKE_TOOLCHAIN_FILE": { + "type": "FILEPATH", + "value": "${sourceDir}/cmake/i686-mingw-w64-toolchain.cmake" + }, + "BUILD_REMASTERTD": "ON", + "BUILD_REMASTERRA": "ON", + "BUILD_VANILLATD": "OFF", + "BUILD_VANILLARA": "OFF", + "MAP_EDITORTD": "OFF", + "MAP_EDITORRA": "OFF", + "BUILD_TOOLS": "OFF" + } + }, + { + "name": "mingw-i686-vanilla", + "inherits": "default-mingw", + "displayName": "MinGW-w64 32bit Vanilla build", + "cacheVariables": { + "CMAKE_TOOLCHAIN_FILE": { + "type": "FILEPATH", + "value": "${sourceDir}/cmake/i686-mingw-w64-toolchain.cmake" + } + } + }, + { + "name": "mingw-x86_64-vanilla", + "inherits": "default-mingw", + "displayName": "MinGW-w64 64bit Vanilla build", + "cacheVariables": { + "CMAKE_TOOLCHAIN_FILE": { + "type": "FILEPATH", + "value": "${sourceDir}/cmake/x86_64-mingw-w64-toolchain.cmake" + } + } + } + ] +} \ No newline at end of file diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index e689f6b1..2e81833d 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -167,9 +167,14 @@ add_library(common STATIC ${COMMON_SRC} ${COMMON_HEADERS}) target_link_libraries(common PUBLIC ${COMMON_LIBS}) target_include_directories(common PUBLIC .) target_compile_definitions(common PRIVATE FIXIT_FAST_LOAD $<$:_DEBUG>) +target_compile_options(common PUBLIC ${VC_CXX_FLAGS}) # Make build check state of git to check for uncommitted changes. add_dependencies(common check_git) +if(NOT MSVC) + target_compile_definitions(common PUBLIC NOMINMAX) +endif() + if(BUILD_REMASTERTD OR BUILD_REMASTERRA) add_library(commonr STATIC ${COMMONR_SRC}) target_compile_definitions(commonr PUBLIC $<$:_DEBUG> ${REMASTER_DEFS}) diff --git a/resources/CMakeUserPresets.json.example b/resources/CMakeUserPresets.json.example new file mode 100644 index 00000000..7ae9d703 --- /dev/null +++ b/resources/CMakeUserPresets.json.example @@ -0,0 +1,39 @@ +{ + "version": 2, + "configurePresets": [ + { + "name": "gcc-vanilla-debug", + "inherits": "gcc-vanilla", + "displayName": "GCC Vanilla debug build", + "binaryDir": "${sourceDir}/build_gcc", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" + } + }, + { + "name": "clang-vanilla-debug", + "inherits": "clang-vanilla", + "displayName": "Clang Vanilla debug build", + "binaryDir": "${sourceDir}/build_clang", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" + } + }, + { + "name": "mingw-i686-vanilla-debug", + "inherits": "mingw-i686-vanilla", + "displayName": "MinGW-w64 32bit Vanilla debug build", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" + } + }, + { + "name": "mingw-x86_64-vanilla-debug", + "inherits": "mingw-x86_64-vanilla", + "displayName": "MinGW-w64 64bit Vanilla debug build", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" + } + } + ] +} \ No newline at end of file