diff --git a/CMakeLists.txt b/CMakeLists.txt index 1de208854..8e795723d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -408,7 +408,7 @@ if( ZMUSIC_FOUND AND NOT FORCE_INTERNAL_ZMUSIC ) message( STATUS "Using system zmusic library, includes found at ${ZMUSIC_INCLUDE_DIR}" ) else() message( STATUS "Using internal zmusic library" ) - add_subdirectory( libraries/zmusic ) + add_subdirectory( libraries/ZMusic ) set( ZMUSIC_ROOT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/libraries/zmusic" ) set( ZMUSIC_INCLUDE_DIR ${ZMUSIC_ROOT_PATH}/include ) set( ZMUSIC_LIBRARIES zmusic ) diff --git a/auto-setup-linux.sh b/auto-setup-linux.sh deleted file mode 100755 index a54677478..000000000 --- a/auto-setup-linux.sh +++ /dev/null @@ -1,104 +0,0 @@ -#!/bin/bash -#** -#** auto-setup-linux.sh -#** Automatic (easy) setup and build script for Linux -#** -#** Note that this script assumes you have both 'git' and 'cmake' installed properly and in your PATH! -#** This script also assumes you have installed a build system that cmake can automatically detect. -#** Such as GCC or Clang. Requires appropriate supporting libraries installed too! -#** Without these items, this script will FAIL! So make sure you have your build environment properly -#** set up in order for this script to succeed. -#** -#** The purpose of this script is to get someone easily going with a full working compile of GZDoom. -#** This allows anyone to make simple changes or tweaks to the engine as they see fit and easily -#** compile their own copy without having to follow complex instructions to get it working. -#** Every build environment is different, and every computer system is different - this should work -#** in most typical systems under Windows but it may fail under certain types of systems or conditions. -#** Not guaranteed to work and your mileage will vary. -#** -#** Prerequisite Packages used in testing (from Linux Mint-XFCE): -#** nasm autoconf libtool libsystemd-dev clang-15 libx11-dev libsdl2-dev libgtk-3-dev -#** -#**--------------------------------------------------------------------------- -#** Copyright 2024 Rachael Alexanderson and the GZDoom team -#** All rights reserved. -#** -#** 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. The name of the author may not be used to endorse or promote products -#** derived from this software without specific prior written permission. -#** -#** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -#**--------------------------------------------------------------------------- -#** - -# -- Always operate within the build folder -BUILDFOLDER=$(dirname "$0")/build - -if [ ! -d "$BUILDFOLDER" ]; then - mkdir "$BUILDFOLDER" -fi -cd "$BUILDFOLDER" - -if [ -d "vcpkg" ]; then - git -C ./vcpkg pull -fi -if [ ! -d "vcpkg" ]; then - git clone https://github.com/microsoft/vcpkg -fi -if [ -d "zmusic" ]; then - git -C ./zmusic fetch -fi -if [ ! -d "zmusic" ]; then - git clone https://github.com/zdoom/zmusic -fi -if [ -d "zmusic" ]; then - git -C ./zmusic checkout 1.1.12 -fi - -if [ ! -d "zmusic/build" ]; then - mkdir zmusic/build -fi -if [ ! -d "vcpkg_installed" ]; then - mkdir vcpkg_installed -fi - -cmake -S ./zmusic -B ./zmusic/build \ - -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake \ - -DVCPKG_LIBSNDFILE=1 \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DVCPKG_INSTALLLED_DIR=../vcpkg_installed/ -pushd ./zmusic/build -make -j $(nproc) -popd - -cmake -S .. -B . \ - -DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DVCPKG_INSTALLLED_DIR=./vcpkg_installed/ -make -j $(nproc); rc=$? - -# -- If successful, show the build -if [ $rc -eq 0 ]; then - if [ -f gzdoom ]; then - xdg-open . - fi -fi - -exit $rc diff --git a/auto-setup-windows-arm.cmd b/auto-setup-windows-arm.cmd deleted file mode 100644 index efefa157c..000000000 --- a/auto-setup-windows-arm.cmd +++ /dev/null @@ -1,89 +0,0 @@ -@echo off -goto aftercopyright - -** -** auto-setup-windows-arm.cmd -** Automatic (easy) setup and build script for Windows ARM (cross compiling on x64) - please have a -** build of x64 in your build folder ready before executing this script! -** -** Note that this script assumes you have both 'git' and 'cmake' installed properly and in your PATH! -** This script also assumes you have installed a build system that cmake can automatically detect. -** Such as Visual Studio Community. Requires appropriate SDK installed too! -** Without these items, this script will FAIL! So make sure you have your build environment properly -** set up in order for this script to succeed. -** -** The purpose of this script is to get someone easily going with a full working compile of GZDoom. -** This allows anyone to make simple changes or tweaks to the engine as they see fit and easily -** compile their own copy without having to follow complex instructions to get it working. -** Every build environment is different, and every computer system is different - this should work -** in most typical systems under Windows but it may fail under certain types of systems or conditions. -** Not guaranteed to work and your mileage will vary. -** -**--------------------------------------------------------------------------- -** Copyright 2024 Rachael Alexanderson and the GZDoom team -** All rights reserved. -** -** 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. The name of the author may not be used to endorse or promote products -** derived from this software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -**--------------------------------------------------------------------------- -** - -:aftercopyright - - -setlocal -rem -- Always operate within the build-arm folder -if not exist "%~dp0\build-arm" mkdir "%~dp0\build-arm" -pushd "%~dp0\build-arm" - -if exist ..\build\vcpkg if exist ..\build\vcpkg\* git -C ../build/vcpkg pull -if not exist ..\build\vcpkg goto :nobuild - -if exist zmusic if exist zmusic\* git -C ./zmusic pull -if not exist zmusic git clone https://github.com/zdoom/zmusic - -mkdir "%~dp0\build-arm\zmusic\build" -mkdir "%~dp0\build-arm\vcpkg_installed" - -cmake -A ARM64 -S ./zmusic -B ./zmusic/build ^ - -DCMAKE_TOOLCHAIN_FILE=../../build/vcpkg/scripts/buildsystems/vcpkg.cmake ^ - -DVCPKG_LIBSNDFILE=1 ^ - -DVCPKG_INSTALLLED_DIR=../vcpkg_installed/ ^ - -DCMAKE_CROSSCOMPILING=TRUE -cmake --build ./zmusic/build --config Release -- -maxcpucount -verbosity:minimal - -cmake -A ARM64 -S .. -B . ^ - -DCMAKE_TOOLCHAIN_FILE=../build/vcpkg/scripts/buildsystems/vcpkg.cmake ^ - -DZMUSIC_INCLUDE_DIR=./zmusic/include ^ - -DZMUSIC_LIBRARIES=./zmusic/build/source/Release/zmusic.lib ^ - -DVCPKG_INSTALLLED_DIR=./vcpkg_installed/ ^ - -DFORCE_CROSSCOMPILE=TRUE ^ - -DIMPORT_EXECUTABLES=../build/ImportExecutables.cmake -cmake --build . --config RelWithDebInfo -- -maxcpucount -verbosity:minimal - -rem -- If successful, show the build -if exist RelWithDebInfo\gzdoom.exe explorer.exe RelWithDebInfo - -goto :eof -:nobuild -echo Please use auto-setup-windows.cmd to create an x64 build first! diff --git a/auto-setup-windows.cmd b/auto-setup-windows.cmd deleted file mode 100644 index 38a16d8d7..000000000 --- a/auto-setup-windows.cmd +++ /dev/null @@ -1,82 +0,0 @@ -@echo off -goto aftercopyright - -** -** auto-setup-windows.cmd -** Automatic (easy) setup and build script for Windows -** -** Note that this script assumes you have both 'git' and 'cmake' installed properly and in your PATH! -** This script also assumes you have installed a build system that cmake can automatically detect. -** Such as Visual Studio Community. Requires appropriate SDK installed too! -** Without these items, this script will FAIL! So make sure you have your build environment properly -** set up in order for this script to succeed. -** -** The purpose of this script is to get someone easily going with a full working compile of GZDoom. -** This allows anyone to make simple changes or tweaks to the engine as they see fit and easily -** compile their own copy without having to follow complex instructions to get it working. -** Every build environment is different, and every computer system is different - this should work -** in most typical systems under Windows but it may fail under certain types of systems or conditions. -** Not guaranteed to work and your mileage will vary. -** -**--------------------------------------------------------------------------- -** Copyright 2023-2024 Rachael Alexanderson and the GZDoom team -** All rights reserved. -** -** 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. The name of the author may not be used to endorse or promote products -** derived from this software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -**--------------------------------------------------------------------------- -** - -:aftercopyright - -setlocal enableextensions - -rem -- Always operate within the build folder -if not exist "%~dp0\build" mkdir "%~dp0\build" -pushd "%~dp0\build" - -if exist vcpkg if exist vcpkg\* git -C ./vcpkg pull -if not exist vcpkg git clone https://github.com/microsoft/vcpkg - -if exist zmusic if exist vcpkg\* git -C ./zmusic pull -if not exist zmusic git clone https://github.com/zdoom/zmusic - -if not exist "%~dp0\build\zmusic\build" mkdir "%~dp0\build\zmusic\build" -if not exist "%~dp0\build\vcpkg_installed" mkdir "%~dp0\build\vcpkg_installed" - -cmake -A x64 -S ./zmusic -B ./zmusic/build ^ - -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake ^ - -DVCPKG_LIBSNDFILE=1 ^ - -DVCPKG_INSTALLLED_DIR=../vcpkg_installed/ -cmake --build ./zmusic/build --config Release -- -maxcpucount -verbosity:minimal - -cmake -A x64 -S .. -B . ^ - -DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake ^ - -DZMUSIC_INCLUDE_DIR=./zmusic/include ^ - -DZMUSIC_LIBRARIES=./zmusic/build/source/Release/zmusic.lib ^ - -DVCPKG_INSTALLLED_DIR=./vcpkg_installed/ -cmake --build . --config RelWithDebInfo -- -maxcpucount -verbosity:minimal - -rem -- If successful, show the build -if not errorlevel 1 if exist RelWithDebInfo\gzdoom.exe explorer.exe RelWithDebInfo - diff --git a/libraries/ZWidget/CMakeLists.txt b/libraries/ZWidget/CMakeLists.txt index 894da17e2..d65e5ccea 100644 --- a/libraries/ZWidget/CMakeLists.txt +++ b/libraries/ZWidget/CMakeLists.txt @@ -242,12 +242,6 @@ else() endif() endif() -if(MSVC) - set(CXX_WARNING_FLAGS /W3) -else() - set(CXX_WARNING_FLAGS -Wall -Wpedantic) -endif() - add_library(zwidget STATIC ${ZWIDGET_SOURCES} ${ZWIDGET_INCLUDES}) target_compile_options(zwidget PRIVATE ${ZWIDGET_COMPILE_OPTIONS}) target_compile_definitions(zwidget PRIVATE ${ZWIDGET_DEFINES}) @@ -255,51 +249,7 @@ target_include_directories(zwidget PRIVATE ${ZWIDGET_INCLUDE_DIRS}) target_link_options(zwidget PRIVATE ${ZWIDGET_LINK_OPTIONS}) target_link_libraries(zwidget ${ZWIDGET_LIBS}) set_target_properties(zwidget PROPERTIES CXX_STANDARD 17) -target_compile_options(zwidget PRIVATE ${CXX_WARNING_FLAGS}) if(MSVC) set_property(TARGET zwidget PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") endif() - -option(ZWIDGET_BUILD_EXAMPLE "Build the zwidget example application" ON) - -if(ZWIDGET_BUILD_EXAMPLE) - if (UNIX AND NOT APPLE) - find_package(SDL2 REQUIRED) - endif() - - add_executable(zwidget_example WIN32 - example/example.cpp - example/picopng.cpp - example/picopng.h - ) - target_compile_options(zwidget_example PRIVATE ${CXX_WARNING_FLAGS}) - - add_custom_command( - TARGET zwidget_example POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - "${CMAKE_CURRENT_SOURCE_DIR}/example/banner.png" - "${CMAKE_CURRENT_BINARY_DIR}/banner.png" - COMMAND ${CMAKE_COMMAND} -E copy - "${CMAKE_CURRENT_SOURCE_DIR}/example/OpenSans.ttf" - "${CMAKE_CURRENT_BINARY_DIR}/OpenSans.ttf" - ) - - target_include_directories(zwidget_example PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/example) - target_link_libraries(zwidget_example PRIVATE zwidget) - - if(WIN32) - target_compile_definitions(zwidget_example PRIVATE UNICODE _UNICODE) - target_link_libraries(zwidget_example PRIVATE gdi32 user32 shell32 comdlg32) - elseif(APPLE) - target_link_libraries(zwidget_example PRIVATE "-framework Cocoa -framework OpenGL") - else() - target_link_libraries(zwidget_example PRIVATE ${ZWIDGET_LIBS} SDL2::SDL2) - endif() - - set_target_properties(zwidget_example PROPERTIES CXX_STANDARD 17) - - if(MSVC) - set_property(TARGET zwidget_example PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") - endif() -endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bc4a53a17..82733be96 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1416,6 +1416,14 @@ add_custom_command(TARGET zdoom POST_BUILD ${CMAKE_SOURCE_DIR}/fm_banks/gs-by-papiezak-and-sneakernets.wopn $/fm_banks/gs-by-papiezak-and-sneakernets.wopn ) +if ( NOT APPLE ) + # bring zmusic in + add_custom_command(TARGET zdoom POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ + DEPENDS zmusic ) +endif() + + if (VCPKG_TOOLCHAIN) x_vcpkg_install_local_dependencies(TARGETS zdoom DESTINATION ".") endif() diff --git a/update-subtrees.cmd b/update-subtrees.cmd new file mode 100644 index 000000000..6facb94b6 --- /dev/null +++ b/update-subtrees.cmd @@ -0,0 +1,3 @@ +@echo off +git subtree pull --prefix=libraries/ZWidget https://github.com/dpjudas/ZWidget master --squash +git subtree pull --prefix=libraries/ZMusic https://github.com/ZDoom/ZMusic master --squash diff --git a/update-subtrees.sh b/update-subtrees.sh new file mode 100755 index 000000000..e579e013f --- /dev/null +++ b/update-subtrees.sh @@ -0,0 +1,3 @@ +#!/bin/bash +git subtree pull --prefix=libraries/ZWidget https://github.com/dpjudas/ZWidget master --squash +git subtree pull --prefix=libraries/ZMusic https://github.com/ZDoom/ZMusic master --squash