From f00e427ed203fa12b1247ef83db7445b362eac05 Mon Sep 17 00:00:00 2001 From: Xadhoom <> Date: Sun, 17 Mar 2019 18:23:49 +0000 Subject: [PATCH] Remove pch.h --- CMakeLists.txt | 46 +++++++++++++-------------------- SourceS/devilution.h | 1 + SourceX/DiabloUI/credits.cpp | 4 ++- SourceX/DiabloUI/diabloui.cpp | 6 ++++- SourceX/DiabloUI/dialogs.cpp | 3 ++- SourceX/DiabloUI/mainmenu.cpp | 3 ++- SourceX/DiabloUI/progress.cpp | 4 ++- SourceX/DiabloUI/selconn.cpp | 4 ++- SourceX/DiabloUI/selgame.cpp | 4 ++- SourceX/DiabloUI/selhero.cpp | 4 ++- SourceX/DiabloUI/title.cpp | 3 ++- SourceX/devilution.h | 3 --- SourceX/dvlnet/loopback.cpp | 1 + SourceX/dvlnet/packet.h | 1 + SourceX/dvlnet/udp_p2p.cpp | 2 ++ SourceX/dx.cpp | 6 ++++- SourceX/{miniwin_sdl.h => dx.h} | 0 SourceX/main.cpp | 4 ++- SourceX/miniwin/misc.cpp | 6 ++++- SourceX/miniwin/misc_io.cpp | 6 +++-- SourceX/miniwin/misc_msg.cpp | 7 ++++- SourceX/miniwin/thread.cpp | 6 ++++- SourceX/miniwin_dsound.cpp | 7 ++++- SourceX/miniwin_dsound.h | 26 +++++++++++++++++++ SourceX/pch.h | 44 ------------------------------- SourceX/sound.cpp | 7 ++--- SourceX/storm.cpp | 8 +++++- SourceX/storm_net.cpp | 5 +++- 28 files changed, 124 insertions(+), 97 deletions(-) create mode 100644 SourceS/devilution.h delete mode 100644 SourceX/devilution.h rename SourceX/{miniwin_sdl.h => dx.h} (100%) create mode 100644 SourceX/miniwin_dsound.h delete mode 100644 SourceX/pch.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 74adde140..8462b0382 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.7) +cmake_minimum_required(VERSION 3.13) include(CMake/out_of_tree.cmake) @@ -6,32 +6,39 @@ project(devilutionX VERSION 0.0.1 LANGUAGES C CXX) +list(APPEND CMAKE_MODULE_PATH "${devilutionX_SOURCE_DIR}/CMake") + if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Debug") endif() option(ASAN "Enable address sanitizer" ON) option(DEBUG "Enable debug mode in engine" ON) -option(COTIRE "Enable cotire" OFF) option(DIST "Dynamically link only glibc and SDL2" OFF) option(FASTER "Enable FASTER in engine" ON) option(BINARY_RELEASE "Enable options for binary release" OFF) +option(NIGHTLY_BUILD "Enable options for nightly build" OFF) if(BINARY_RELEASE) set(CMAKE_BUILD_TYPE "Release") set(ASAN OFF) set(DEBUG OFF) - set(COTIRE OFF) set(DIST ON) set(FASTER OFF) endif() +if(NIGHTLY_BUILD) + set(CMAKE_BUILD_TYPE "Debug") + set(ASAN OFF) + set(DEBUG ON) + set(DIST ON) + set(FASTER ON) +endif() + if(DIST) set(sodium_USE_STATIC_LIBS ON) endif() -list(APPEND CMAKE_MODULE_PATH "${devilutionX_SOURCE_DIR}/CMake") - set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) @@ -43,10 +50,6 @@ if(NOT CMAKE_SIZEOF_VOID_P EQUAL 4) message(WARNING [[Not 32-bit, highly experimental!]]) endif() -if(COTIRE) - include(CMake/cotire.cmake) -endif() - find_package(Threads REQUIRED) find_package(SDL2 REQUIRED) find_package(SDL2_ttf REQUIRED) @@ -150,7 +153,6 @@ add_library(devilution OBJECT Source/track.cpp Source/trigs.cpp Source/wave.cpp) -target_include_directories(devilution PRIVATE SourceS) add_executable(devilutionx SourceX/dx.cpp @@ -182,16 +184,16 @@ add_executable(devilutionx SourceX/DiabloUI/title.cpp SourceX/main.cpp) -target_include_directories(devilutionx PRIVATE SourceS SourceX 3rdParty/asio/include .) +target_include_directories(devilution PUBLIC Source SourceS) +target_include_directories(devilutionx PRIVATE SourceX 3rdParty/asio/include) -target_link_libraries(devilution PRIVATE Threads::Threads) +target_link_libraries(devilution PUBLIC Threads::Threads) target_link_libraries(devilutionx PRIVATE devilution PKWare StormLib smacker Radon - Threads::Threads SDL2::SDL2main SDL2::SDL2_ttf SDL2::SDL2_mixer @@ -203,13 +205,11 @@ target_compile_definitions(devilution PUBLIC "$<$:_DEBUG>" # Skip fades and other fluff "$<$:FASTER>") +target_compile_definitions(devilutionx PRIVATE ASIO_STANDALONE) -target_compile_definitions(devilutionx PUBLIC ASIO_STANDALONE) - -# Enable ASAN in Debug mode if(ASAN) target_compile_options(devilution PUBLIC -fsanitize=address -fsanitize-recover=address) - target_link_libraries(devilution PUBLIC -fsanitize=address -fsanitize-recover=address) + target_link_options(devilution PUBLIC -fsanitize=address -fsanitize-recover=address) endif() if(DIST) @@ -217,15 +217,14 @@ if(DIST) endif() if(WIN32) - cmake_minimum_required(VERSION 3.13) target_link_libraries(devilutionx PRIVATE wsock32 ws2_32 wininet) target_compile_options(devilution PUBLIC $<$:-gstabs>) endif() +target_compile_options(devilution PUBLIC -Wno-unknown-pragmas) # Note: In Debug mode, GCC generates spurious memory references that upset Valgrind, # these options fix that. target_compile_options(devilution PUBLIC $<$:-fno-omit-frame-pointer>) - # Ignore serious warnings due to "quality" of decompiled code # Currently, disable ignore all warnings (-w), to be removed later target_compile_options(devilution PRIVATE -fpermissive -Wno-write-strings -Wno-multichar -w) @@ -235,7 +234,6 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") target_compile_options(devilution PRIVATE -fno-aggressive-loop-optimizations) endif() # Warnings for devilutionX -target_compile_options(devilution PUBLIC -Wno-unknown-pragmas) target_compile_options(devilutionx PRIVATE -Wall -Wextra -Wno-multichar -Wno-unused-parameter) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") @@ -248,11 +246,3 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") set_target_properties(devilutionx PROPERTIES LINK_FLAGS "-liconv") endif() - -if(COTIRE) - set_target_properties(devilutionx PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE) - set_target_properties(devilutionx PROPERTIES - COTIRE_PREFIX_HEADER_INCLUDE_PATH "${devilutionX_SOURCE_DIR}" - COTIRE_PREFIX_HEADER_IGNORE_PATH "${devilutionX_SOURCE_DIR}/SourceX") - cotire(devilutionx) -endif() diff --git a/SourceS/devilution.h b/SourceS/devilution.h new file mode 100644 index 000000000..fa95d570b --- /dev/null +++ b/SourceS/devilution.h @@ -0,0 +1 @@ +#include "../types.h" diff --git a/SourceX/DiabloUI/credits.cpp b/SourceX/DiabloUI/credits.cpp index 889d54212..944cd9006 100644 --- a/SourceX/DiabloUI/credits.cpp +++ b/SourceX/DiabloUI/credits.cpp @@ -1,4 +1,6 @@ -#include "pch.h" +#include "devilution.h" +#include "DiabloUI/diabloui.h" +#include "dx.h" #define CREDIT_LINES 13 diff --git a/SourceX/DiabloUI/diabloui.cpp b/SourceX/DiabloUI/diabloui.cpp index 0ce4fa74a..6b74fb602 100644 --- a/SourceX/DiabloUI/diabloui.cpp +++ b/SourceX/DiabloUI/diabloui.cpp @@ -1,6 +1,10 @@ -#include "pch.h" #include + +#include "devilution.h" +#include "DiabloUI/diabloui.h" +#include "dx.h" #include "utf8.h" +#include "stubs.h" namespace dvl { diff --git a/SourceX/DiabloUI/dialogs.cpp b/SourceX/DiabloUI/dialogs.cpp index 00688c9a0..6c9ac120d 100644 --- a/SourceX/DiabloUI/dialogs.cpp +++ b/SourceX/DiabloUI/dialogs.cpp @@ -1,4 +1,5 @@ -#include "pch.h" +#include "devilution.h" +#include "DiabloUI/diabloui.h" namespace dvl { diff --git a/SourceX/DiabloUI/mainmenu.cpp b/SourceX/DiabloUI/mainmenu.cpp index 3e5e78f5d..dc9b8d2aa 100644 --- a/SourceX/DiabloUI/mainmenu.cpp +++ b/SourceX/DiabloUI/mainmenu.cpp @@ -1,4 +1,5 @@ -#include "pch.h" +#include "devilution.h" +#include "DiabloUI/diabloui.h" namespace dvl { diff --git a/SourceX/DiabloUI/progress.cpp b/SourceX/DiabloUI/progress.cpp index a9dc261df..90ed59dcb 100644 --- a/SourceX/DiabloUI/progress.cpp +++ b/SourceX/DiabloUI/progress.cpp @@ -1,4 +1,6 @@ -#include "pch.h" +#include "devilution.h" +#include "DiabloUI/diabloui.h" +#include "dx.h" namespace dvl { diff --git a/SourceX/DiabloUI/selconn.cpp b/SourceX/DiabloUI/selconn.cpp index d1fbae511..d4f93c2bc 100644 --- a/SourceX/DiabloUI/selconn.cpp +++ b/SourceX/DiabloUI/selconn.cpp @@ -1,6 +1,8 @@ -#include "pch.h" #include "selconn.h" +#include "devilution.h" +#include "DiabloUI/diabloui.h" + namespace dvl { char selconn_MaxPlayers[21]; diff --git a/SourceX/DiabloUI/selgame.cpp b/SourceX/DiabloUI/selgame.cpp index 9f46e8d02..bdaabf785 100644 --- a/SourceX/DiabloUI/selgame.cpp +++ b/SourceX/DiabloUI/selgame.cpp @@ -1,6 +1,8 @@ -#include "pch.h" #include "selgame.h" +#include "devilution.h" +#include "DiabloUI/diabloui.h" + namespace dvl { char selgame_Lable[32]; diff --git a/SourceX/DiabloUI/selhero.cpp b/SourceX/DiabloUI/selhero.cpp index 5219893e3..c09d53dbb 100644 --- a/SourceX/DiabloUI/selhero.cpp +++ b/SourceX/DiabloUI/selhero.cpp @@ -1,6 +1,8 @@ -#include "pch.h" #include "selhero.h" +#include "devilution.h" +#include "DiabloUI/diabloui.h" + namespace dvl { int selhero_SaveCount = 0; diff --git a/SourceX/DiabloUI/title.cpp b/SourceX/DiabloUI/title.cpp index 1308e66ee..3e8334cbd 100644 --- a/SourceX/DiabloUI/title.cpp +++ b/SourceX/DiabloUI/title.cpp @@ -1,4 +1,5 @@ -#include "pch.h" +#include "devilution.h" +#include "DiabloUI/diabloui.h" namespace dvl { diff --git a/SourceX/devilution.h b/SourceX/devilution.h deleted file mode 100644 index 41e446c13..000000000 --- a/SourceX/devilution.h +++ /dev/null @@ -1,3 +0,0 @@ -#include -#include "stubs.h" -#include "miniwin_sdl.h" diff --git a/SourceX/dvlnet/loopback.cpp b/SourceX/dvlnet/loopback.cpp index 7de7c88e5..332504fd0 100644 --- a/SourceX/dvlnet/loopback.cpp +++ b/SourceX/dvlnet/loopback.cpp @@ -1,4 +1,5 @@ #include "dvlnet/loopback.h" +#include "stubs.h" namespace dvl { namespace net { diff --git a/SourceX/dvlnet/packet.h b/SourceX/dvlnet/packet.h index 6a1ecd67f..40e0b462f 100644 --- a/SourceX/dvlnet/packet.h +++ b/SourceX/dvlnet/packet.h @@ -6,6 +6,7 @@ #include #include "dvlnet/abstract_net.h" +#include "stubs.h" namespace dvl { namespace net { enum packet_type : uint8_t { diff --git a/SourceX/dvlnet/udp_p2p.cpp b/SourceX/dvlnet/udp_p2p.cpp index 74271042a..0c9c7d8e2 100644 --- a/SourceX/dvlnet/udp_p2p.cpp +++ b/SourceX/dvlnet/udp_p2p.cpp @@ -1,5 +1,7 @@ #include "dvlnet/udp_p2p.h" +#include + namespace dvl { namespace net { const udp_p2p::endpoint udp_p2p::none; diff --git a/SourceX/dx.cpp b/SourceX/dx.cpp index 046aa1127..3b08b424d 100644 --- a/SourceX/dx.cpp +++ b/SourceX/dx.cpp @@ -1,4 +1,8 @@ -#include "pch.h" +#include "dx.h" + +#include "devilution.h" +#include "stubs.h" +#include "DiabloUI/diabloui.h" namespace dvl { diff --git a/SourceX/miniwin_sdl.h b/SourceX/dx.h similarity index 100% rename from SourceX/miniwin_sdl.h rename to SourceX/dx.h diff --git a/SourceX/main.cpp b/SourceX/main.cpp index 7d9b3ed1c..d47bdbecc 100644 --- a/SourceX/main.cpp +++ b/SourceX/main.cpp @@ -1,4 +1,6 @@ -#include "pch.h" +#include + +#include "devilution.h" extern "C" const char *__asan_default_options() { diff --git a/SourceX/miniwin/misc.cpp b/SourceX/miniwin/misc.cpp index 80c9a444f..3cfe08aa5 100644 --- a/SourceX/miniwin/misc.cpp +++ b/SourceX/miniwin/misc.cpp @@ -1,10 +1,14 @@ -#include "pch.h" #ifndef _WIN32 #include #endif #include +#include "devilution.h" +#include "stubs.h" +#include "dx.h" +#include "DiabloUI/diabloui.h" + namespace dvl { DWORD last_error; diff --git a/SourceX/miniwin/misc_io.cpp b/SourceX/miniwin/misc_io.cpp index 9f953d27d..250a38a68 100644 --- a/SourceX/miniwin/misc_io.cpp +++ b/SourceX/miniwin/misc_io.cpp @@ -1,8 +1,10 @@ -#include "pch.h" - #include #include #include +#include + +#include "devilution.h" +#include "stubs.h" namespace dvl { diff --git a/SourceX/miniwin/misc_msg.cpp b/SourceX/miniwin/misc_msg.cpp index 819f04e73..c03983a81 100644 --- a/SourceX/miniwin/misc_msg.cpp +++ b/SourceX/miniwin/misc_msg.cpp @@ -1,4 +1,9 @@ -#include "pch.h" +#include +#include + +#include "devilution.h" +#include "stubs.h" + /** @file * * * Windows message handling and keyboard event conversion for SDL. diff --git a/SourceX/miniwin/thread.cpp b/SourceX/miniwin/thread.cpp index 1091c6c9f..ffa6ad50a 100644 --- a/SourceX/miniwin/thread.cpp +++ b/SourceX/miniwin/thread.cpp @@ -1,4 +1,8 @@ -#include "pch.h" +#include +#include + +#include "devilution.h" +#include "stubs.h" namespace dvl { diff --git a/SourceX/miniwin_dsound.cpp b/SourceX/miniwin_dsound.cpp index de18b0a24..6c30926cd 100644 --- a/SourceX/miniwin_dsound.cpp +++ b/SourceX/miniwin_dsound.cpp @@ -1,4 +1,9 @@ -#include "pch.h" +#include "miniwin_dsound.h" + +#include + +#include "devilution.h" +#include "stubs.h" namespace dvl { diff --git a/SourceX/miniwin_dsound.h b/SourceX/miniwin_dsound.h new file mode 100644 index 000000000..a29dce871 --- /dev/null +++ b/SourceX/miniwin_dsound.h @@ -0,0 +1,26 @@ +#include "devilution.h" + +#include + +namespace dvl { + +struct DirectSoundBuffer : public IDirectSoundBuffer { +public: + virtual ULONG Release(); + BOOL GetStatus(LPDWORD pdwStatus); + HRESULT Lock(DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, + LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags); + HRESULT Play(DWORD dwReserved1, DWORD dwPriority, DWORD dwFlags); + HRESULT SetFormat(LPCWAVEFORMATEX pcfxFormat); + HRESULT SetVolume(LONG lVolume); + HRESULT SetPan(LONG lPan); + HRESULT Stop(); + HRESULT Unlock(LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioBytes2); + HRESULT Restore(); + private: + int volume = 0; + int pan = 0; + Mix_Chunk *chunk; +}; + +} // namespace dvl diff --git a/SourceX/pch.h b/SourceX/pch.h deleted file mode 100644 index 15158591c..000000000 --- a/SourceX/pch.h +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "devilution.h" -#include "DiabloUI/diabloui.h" - -namespace dvl { - -struct DirectSoundBuffer : public IDirectSoundBuffer { -public: - virtual ULONG Release(); - BOOL GetStatus(LPDWORD pdwStatus); - HRESULT Lock(DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, - LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags); - HRESULT Play(DWORD dwReserved1, DWORD dwPriority, DWORD dwFlags); - HRESULT SetFormat(LPCWAVEFORMATEX pcfxFormat); - HRESULT SetVolume(LONG lVolume); - HRESULT SetPan(LONG lPan); - HRESULT Stop(); - HRESULT Unlock(LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioBytes2); - HRESULT Restore(); - private: - int volume = 0; - int pan = 0; - Mix_Chunk *chunk; -}; - -} // namespace dvl diff --git a/SourceX/sound.cpp b/SourceX/sound.cpp index b32ec2f17..ce3364299 100644 --- a/SourceX/sound.cpp +++ b/SourceX/sound.cpp @@ -1,7 +1,8 @@ -//HEADER_GOES_HERE +#include "devilution.h" -#include "../types.h" -#include "pch.h" +#include + +#include "stubs.h" namespace dvl { diff --git a/SourceX/storm.cpp b/SourceX/storm.cpp index 652e55f1c..e5051709a 100644 --- a/SourceX/storm.cpp +++ b/SourceX/storm.cpp @@ -1,8 +1,14 @@ #include "../3rdParty/Radon/Radon/include/Radon.hpp" #include "../3rdParty/libsmacker/smacker.h" -#include "pch.h" #include +#include +#include + +#include "devilution.h" +#include "stubs.h" +#include "DiabloUI/diabloui.h" +#include "dx.h" namespace dvl { diff --git a/SourceX/storm_net.cpp b/SourceX/storm_net.cpp index 7e66ecf57..fabd846e3 100644 --- a/SourceX/storm_net.cpp +++ b/SourceX/storm_net.cpp @@ -1,5 +1,8 @@ +#include + +#include "devilution.h" +#include "stubs.h" #include "dvlnet/abstract_net.h" -#include "pch.h" namespace dvl {