From bff11033c350e687e8888603ca5731982079335e Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Sun, 28 Mar 2021 22:47:40 +0200 Subject: [PATCH] First steps to get a custom DLL built in Debug mode with all of the relevent Quake engine code embedded --- .gitignore | 3 + engine/code/snd_fmod.c | 2 - engine/projects/uniquake/cpp.hint | 2 + engine/projects/uniquake/dllmain.cpp | 19 + engine/projects/uniquake/framework.h | 5 + engine/projects/uniquake/pch.cpp | 5 + engine/projects/uniquake/pch.h | 13 + engine/projects/uniquake/uniquake.cpp | 22 + engine/projects/uniquake/uniquake.h | 22 + engine/projects/uniquake/uniquake.vcxproj | 365 ++++++++++++ .../uniquake/uniquake.vcxproj.filters | 548 ++++++++++++++++++ 11 files changed, 1004 insertions(+), 2 deletions(-) create mode 100644 engine/projects/uniquake/cpp.hint create mode 100644 engine/projects/uniquake/dllmain.cpp create mode 100644 engine/projects/uniquake/framework.h create mode 100644 engine/projects/uniquake/pch.cpp create mode 100644 engine/projects/uniquake/pch.h create mode 100644 engine/projects/uniquake/uniquake.cpp create mode 100644 engine/projects/uniquake/uniquake.h create mode 100644 engine/projects/uniquake/uniquake.vcxproj create mode 100644 engine/projects/uniquake/uniquake.vcxproj.filters diff --git a/.gitignore b/.gitignore index 54d757b..7c0fa2b 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ UserSettings/ .vs/ Debug/ Release/ +.idea/ +*.csproj +Logs/ diff --git a/engine/code/snd_fmod.c b/engine/code/snd_fmod.c index a061b14..9b8a1eb 100644 --- a/engine/code/snd_fmod.c +++ b/engine/code/snd_fmod.c @@ -38,8 +38,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifdef UQE_FMOD -#pragma comment(lib, "../fmod-4/lib/fmodex_vc.lib") - #include "../fmod-4/inc/fmod.h" #include "../fmod-4/inc/fmod_errors.h" diff --git a/engine/projects/uniquake/cpp.hint b/engine/projects/uniquake/cpp.hint new file mode 100644 index 0000000..22f5d0a --- /dev/null +++ b/engine/projects/uniquake/cpp.hint @@ -0,0 +1,2 @@ +#define UNIQUAKE_API __declspec(dllexport) +#define UNIQUAKE_API __declspec(dllimport) diff --git a/engine/projects/uniquake/dllmain.cpp b/engine/projects/uniquake/dllmain.cpp new file mode 100644 index 0000000..f266597 --- /dev/null +++ b/engine/projects/uniquake/dllmain.cpp @@ -0,0 +1,19 @@ +// dllmain.cpp : Defines the entry point for the DLL application. +#include "pch.h" + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + diff --git a/engine/projects/uniquake/framework.h b/engine/projects/uniquake/framework.h new file mode 100644 index 0000000..54b83e9 --- /dev/null +++ b/engine/projects/uniquake/framework.h @@ -0,0 +1,5 @@ +#pragma once + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +// Windows Header Files +#include diff --git a/engine/projects/uniquake/pch.cpp b/engine/projects/uniquake/pch.cpp new file mode 100644 index 0000000..64b7eef --- /dev/null +++ b/engine/projects/uniquake/pch.cpp @@ -0,0 +1,5 @@ +// pch.cpp: source file corresponding to the pre-compiled header + +#include "pch.h" + +// When you are using pre-compiled headers, this source file is necessary for compilation to succeed. diff --git a/engine/projects/uniquake/pch.h b/engine/projects/uniquake/pch.h new file mode 100644 index 0000000..885d5d6 --- /dev/null +++ b/engine/projects/uniquake/pch.h @@ -0,0 +1,13 @@ +// pch.h: This is a precompiled header file. +// Files listed below are compiled only once, improving build performance for future builds. +// This also affects IntelliSense performance, including code completion and many code browsing features. +// However, files listed here are ALL re-compiled if any one of them is updated between builds. +// Do not add files here that you will be updating frequently as this negates the performance advantage. + +#ifndef PCH_H +#define PCH_H + +// add headers that you want to pre-compile here +#include "framework.h" + +#endif //PCH_H diff --git a/engine/projects/uniquake/uniquake.cpp b/engine/projects/uniquake/uniquake.cpp new file mode 100644 index 0000000..48efc28 --- /dev/null +++ b/engine/projects/uniquake/uniquake.cpp @@ -0,0 +1,22 @@ +// uniquake.cpp : Defines the exported functions for the DLL. +// + +#include "pch.h" +#include "framework.h" +#include "uniquake.h" + + +// This is an example of an exported variable +UNIQUAKE_API int nuniquake=0; + +// This is an example of an exported function. +UNIQUAKE_API int fnuniquake(void) +{ + return 0; +} + +// This is the constructor of a class that has been exported. +Cuniquake::Cuniquake() +{ + return; +} diff --git a/engine/projects/uniquake/uniquake.h b/engine/projects/uniquake/uniquake.h new file mode 100644 index 0000000..c715bd6 --- /dev/null +++ b/engine/projects/uniquake/uniquake.h @@ -0,0 +1,22 @@ +// The following ifdef block is the standard way of creating macros which make exporting +// from a DLL simpler. All files within this DLL are compiled with the UNIQUAKE_EXPORTS +// symbol defined on the command line. This symbol should not be defined on any project +// that uses this DLL. This way any other project whose source files include this file see +// UNIQUAKE_API functions as being imported from a DLL, whereas this DLL sees symbols +// defined with this macro as being exported. +#ifdef UNIQUAKE_EXPORTS +#define UNIQUAKE_API __declspec(dllexport) +#else +#define UNIQUAKE_API __declspec(dllimport) +#endif + +// This class is exported from the dll +class UNIQUAKE_API Cuniquake { +public: + Cuniquake(void); + // TODO: add your methods here. +}; + +extern UNIQUAKE_API int nuniquake; + +UNIQUAKE_API int fnuniquake(void); diff --git a/engine/projects/uniquake/uniquake.vcxproj b/engine/projects/uniquake/uniquake.vcxproj new file mode 100644 index 0000000..854def9 --- /dev/null +++ b/engine/projects/uniquake/uniquake.vcxproj @@ -0,0 +1,365 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 15.0 + {6BF61A30-D954-4A67-9A68-CE981083D4DC} + Win32Proj + uniquake + 10.0.17763.0 + + + + DynamicLibrary + true + v141 + NotSet + + + DynamicLibrary + false + v141 + true + Unicode + + + DynamicLibrary + true + v141 + Unicode + + + DynamicLibrary + false + v141 + true + Unicode + + + + + + + + + + + + + + + + + + + + + UNIQUAKE + true + + + UNIQUAKE + true + + + UNIQUAKE + false + + + UNIQUAKE + false + + + + NotUsing + Level1 + Disabled + false + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;UNIQUAKE_EXPORTS;_WINDOWS;_USRDLL;GLQUAKE;%(PreprocessorDefinitions) + false + pch.h + + + + + Windows + true + false + kernel32.lib;user32.lib;gdi32.lib;opengl32.lib;winmm.lib;wsock32.lib;glu32.lib;fmodexL_vc.lib + ..\..\fmod-4\lib;%(AdditionalLibraryDirectories) + + + + + NotUsing + Level3 + Disabled + true + _DEBUG;UNIQUAKE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + pch.h + + + + + Windows + true + false + fmodexL_vc.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + ..\..\fmod-4\lib;%(AdditionalLibraryDirectories) + + + + + NotUsing + Level3 + MaxSpeed + true + true + true + WIN32;NDEBUG;UNIQUAKE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + pch.h + + + + + Windows + true + true + true + false + fmodex_vc.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + ..\..\fmod-4\lib;%(AdditionalLibraryDirectories) + + + + + NotUsing + Level3 + MaxSpeed + true + true + true + NDEBUG;UNIQUAKE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + pch.h + + + + + Windows + true + true + true + false + fmodex_vc.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + ..\..\fmod-4\lib;%(AdditionalLibraryDirectories) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + + + + + + + + + + \ No newline at end of file diff --git a/engine/projects/uniquake/uniquake.vcxproj.filters b/engine/projects/uniquake/uniquake.vcxproj.filters new file mode 100644 index 0000000..38a9eaf --- /dev/null +++ b/engine/projects/uniquake/uniquake.vcxproj.filters @@ -0,0 +1,548 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {3f2f4b7e-be4b-4320-b2b3-2ae03d48656b} + + + {c3683c27-7e24-40b1-9b4b-79a0d059c9a4} + + + {89755f20-dffb-43a4-a16f-4aacd1e25440} + + + + + + + + Header Files + + + Header Files + + + Header Files + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + fmod + + + fmod + + + fmod + + + fmod + + + fmod + + + fmod + + + fmod + + + + + Source Files + + + Source Files + + + Source Files + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + engine + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + jpeg + + + + + Resource Files + + + \ No newline at end of file