mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2025-03-14 06:34:10 +00:00
Added CMake -DRETAIL option for shipping builds on Github/ModDB
This commit is contained in:
parent
c01089f113
commit
506250ad62
9 changed files with 54 additions and 72 deletions
|
@ -68,6 +68,9 @@ option(USE_VMA
|
|||
option(OPTICK
|
||||
"Enable profiling with Optick" OFF)
|
||||
|
||||
option(RETAIL
|
||||
"Strip certain developer features and cheats from shipping builds" OFF)
|
||||
|
||||
set(NVRHI_INSTALL OFF)
|
||||
|
||||
set(CPU_TYPE "" CACHE STRING "When set, passes this string as CPU-ID which will be embedded into the binary.")
|
||||
|
@ -112,27 +115,14 @@ if(COMPILE_COMMANDS)
|
|||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
endif()
|
||||
|
||||
if (FORCE_COLOR_OUTPUT)
|
||||
if (CMAKE_COMPILER_IS_GNUCC)
|
||||
add_compile_options(-fdiagnostics-color=always)
|
||||
elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
add_compile_options(-fcolor-diagnostics)
|
||||
endif ()
|
||||
# Enforced colored output
|
||||
if (CMAKE_COMPILER_IS_GNUCC)
|
||||
add_compile_options(-fdiagnostics-color=always)
|
||||
elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
add_compile_options(-fcolor-diagnostics)
|
||||
endif ()
|
||||
|
||||
if(MSVC)
|
||||
#message(STATUS CMAKE_ROOT: ${CMAKE_ROOT})
|
||||
|
||||
#if(CMAKE_CL_64)
|
||||
# SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../bin/win64)
|
||||
#else()
|
||||
# SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../bin/win32)
|
||||
#endif()
|
||||
|
||||
#message(STATUS EXECUTABLE_OUTPUT_PATH: ${EXECUTABLE_OUTPUT_PATH})
|
||||
#message(STATUS PROJECT_BINARY_DIR: ${PROJECT_BINARY_DIR})
|
||||
#message(STATUS CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR})
|
||||
else()
|
||||
if(NOT MSVC)
|
||||
message(STATUS CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE})
|
||||
endif()
|
||||
|
||||
|
@ -176,7 +166,7 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
|||
#endif()
|
||||
|
||||
add_compile_options(-Wno-pragmas -Wno-unused-variable -Wno-switch -Wno-unused-value -Winvalid-pch -Wno-multichar)
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
# add clang-specific settings for warnings (the second one make sure clang doesn't complain
|
||||
# about unknown -W flags, like -Wno-unused-but-set-variable)
|
||||
# SRS - Add -Wno-expansion-to-defined, Wno-nullability-completeness and -Wno-shorten-64-to-32 to list of warning settings
|
||||
|
@ -240,47 +230,23 @@ elseif(MSVC)
|
|||
# Omit Frame Pointers
|
||||
# "/Oy",
|
||||
|
||||
# if(MSVC_VERSION EQUAL 1700)
|
||||
# #message(STATUS "$ENV{LIBPATH}")
|
||||
|
||||
# find_path(Windows_winmd_DIR NAMES Windows.winmd
|
||||
# HINTS
|
||||
# C:/Program Files (x86)/Windows Kits/8.0/References/CommonConfiguration/Neutral
|
||||
# PATH_SUFFIXES "Neutral")
|
||||
|
||||
# message(STATUS "${Windows_winmd_DIR}")
|
||||
|
||||
# #set(WINRT_OPTIONS "/ZW /D USE_WINRT /AI \"C:\Program Files (x86)\Windows Kits\8.0\References\CommonConfiguration\Neutral\"")
|
||||
# #set(WINRT_OPTIONS "/ZW /D USE_WINRT /AI \"$ENV{LIBPATH}\" ")
|
||||
# set(WINRT_OPTIONS "/ZW /D USE_WINRT")
|
||||
|
||||
# set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /D _DEBUG /MP ${WINRT_OPTIONS}")
|
||||
# set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MP /Oi /Oy ${WINRT_OPTIONS}")
|
||||
# set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /MP /Oi ${WINRT_OPTIONS}")
|
||||
# set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} /MP /Oi /Oy ${WINRT_OPTIONS}")
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /D _DEBUG /MP /MDd")
|
||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MP /Oi /Oy /MD")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /MP /Oi /MDd")
|
||||
set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} /MP /Oi /Oy /MD")
|
||||
|
||||
# set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MP ${WINRT_OPTIONS}")
|
||||
# set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MP /Oi /Oy ${WINRT_OPTIONS}")
|
||||
# set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MP ${WINRT_OPTIONS}")
|
||||
# set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /MP /Oi /Oy ${WINRT_OPTIONS}")
|
||||
# else()
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /D _DEBUG /MP /MDd")
|
||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MP /Oi /Oy /MD")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /MP /Oi /MDd")
|
||||
set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} /MP /Oi /Oy /MD")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MP /MDd")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MP /Oi /Oy /MD")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MP /MDd")
|
||||
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /MP /Oi /Oy /MD")
|
||||
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MP /MDd")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MP /Oi /Oy /MD")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MP /MDd")
|
||||
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /MP /Oi /Oy /MD")
|
||||
|
||||
# RB: without /SAFESEH:NO we can't link against ffmpeg libs and VS2013 or we have to build our own
|
||||
# libs for newer compilers
|
||||
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /SAFESEH:NO")
|
||||
set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} /SAFESEH:NO")
|
||||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /SAFESEH:NO")
|
||||
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /SAFESEH:NO")
|
||||
# endif()
|
||||
# RB: without /SAFESEH:NO we can't link against ffmpeg libs and VS2013 or we have to build our own
|
||||
# libs for newer compilers
|
||||
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /SAFESEH:NO")
|
||||
set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} /SAFESEH:NO")
|
||||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /SAFESEH:NO")
|
||||
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /SAFESEH:NO")
|
||||
|
||||
add_definitions(-DWIN32
|
||||
-DNOMINMAX
|
||||
|
@ -294,7 +260,7 @@ elseif(MSVC)
|
|||
if( WINDOWS10 ) # Windows RT
|
||||
add_definitions(-DUSE_WINRT)
|
||||
endif()
|
||||
|
||||
|
||||
if(NOT CMAKE_CL_64)
|
||||
add_definitions(-D_USE_32BIT_TIME_T)
|
||||
endif()
|
||||
|
@ -311,6 +277,10 @@ if(STANDALONE)
|
|||
set(DOOM_CLASSIC OFF)
|
||||
endif()
|
||||
|
||||
if(RETAIL)
|
||||
add_definitions(-DID_RETAIL)
|
||||
endif()
|
||||
|
||||
# SRS - set libjpeg as first include path to prioritize bundled format_message() fix
|
||||
if (USE_SYSTEM_LIBJPEG)
|
||||
find_package(JPEG)
|
||||
|
|
6
neo/cmake-vs2019-win64-retail.bat
Normal file
6
neo/cmake-vs2019-win64-retail.bat
Normal file
|
@ -0,0 +1,6 @@
|
|||
cd ..
|
||||
del /s /q build
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G "Visual Studio 16" -A x64 -DFFMPEG=ON -DBINKDEC=OFF -DRETAIL=ON ../neo
|
||||
pause
|
6
neo/cmake-vs2022-win64-retail.bat
Normal file
6
neo/cmake-vs2022-win64-retail.bat
Normal file
|
@ -0,0 +1,6 @@
|
|||
cd ..
|
||||
del /s /q build
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G "Visual Studio 17" -A x64 -DFFMPEG=ON -DBINKDEC=OFF -DRETAIL=ON ../neo
|
||||
pause
|
|
@ -254,7 +254,7 @@ void idAchievementManager::EventCompletesAchievement( const achievement_t eventI
|
|||
return;
|
||||
}
|
||||
|
||||
#ifdef ID_RETAIL
|
||||
#if 0 //def ID_RETAIL
|
||||
if( common->GetConsoleUsed() )
|
||||
{
|
||||
if( !cheatingDialogShown )
|
||||
|
@ -338,7 +338,7 @@ void idAchievementManager::LocalUser_CompleteAchievement( achievement_t id )
|
|||
return;
|
||||
}
|
||||
|
||||
#ifdef ID_RETAIL
|
||||
#if 0 //def ID_RETAIL
|
||||
if( common->GetConsoleUsed() )
|
||||
{
|
||||
if( !cheatingDialogShown )
|
||||
|
|
|
@ -842,7 +842,7 @@ void idMenuHandler_Shell::SetupPCOptions()
|
|||
}
|
||||
else
|
||||
{
|
||||
#if !defined ( ID_RETAIL )
|
||||
#if !defined( ID_RETAIL )
|
||||
navOptions.Append( "DEV" ); // DEV
|
||||
#endif
|
||||
navOptions.Append( "#str_swf_campaign" ); // singleplayer
|
||||
|
@ -854,7 +854,7 @@ void idMenuHandler_Shell::SetupPCOptions()
|
|||
|
||||
idMenuWidget_MenuButton* buttonWidget = NULL;
|
||||
int index = 0;
|
||||
#if !defined ( ID_RETAIL )
|
||||
#if !defined( ID_RETAIL )
|
||||
buttonWidget = dynamic_cast< idMenuWidget_MenuButton* >( &menuBar->GetChildByIndex( index ) );
|
||||
if( buttonWidget != NULL )
|
||||
{
|
||||
|
|
|
@ -211,7 +211,7 @@ void idMenuScreen_Shell_Root::ShowScreen( const mainMenuTransition_t transitionT
|
|||
|
||||
idMenuWidget_Button* buttonWidget = NULL;
|
||||
|
||||
#if !defined ( ID_RETAIL )
|
||||
#if !defined( ID_RETAIL )
|
||||
option.Append( "DEV" ); // DEV
|
||||
menuOptions.Append( option );
|
||||
options->GetChildByIndex( index ).ClearEventActions();
|
||||
|
|
|
@ -112,7 +112,7 @@ created using the CONSOLE_COMMAND_SHIP macro.
|
|||
================================================
|
||||
*/
|
||||
|
||||
#if defined ( ID_RETAIL ) && !defined( ID_RETAIL_INTERNAL )
|
||||
#if defined( ID_RETAIL ) && !defined( ID_RETAIL_INTERNAL )
|
||||
#define CONSOLE_COMMAND_SHIP CONSOLE_COMMAND_COMPILE
|
||||
#define CONSOLE_COMMAND CONSOLE_COMMAND_NO_COMPILE
|
||||
// We need to disable this warning to get commands that were made friends
|
||||
|
|
|
@ -71,7 +71,8 @@ struct version_s
|
|||
idCVar com_version( "si_version", version.string, CVAR_SYSTEM | CVAR_ROM | CVAR_SERVERINFO, "engine version" );
|
||||
idCVar com_forceGenericSIMD( "com_forceGenericSIMD", "0", CVAR_BOOL | CVAR_SYSTEM | CVAR_NOCHEAT, "force generic platform independent SIMD" );
|
||||
|
||||
#ifdef ID_RETAIL
|
||||
// RB: not allowing the console is a bit harsh for shipping builds
|
||||
#if 0 //def ID_RETAIL
|
||||
idCVar com_allowConsole( "com_allowConsole", "0", CVAR_BOOL | CVAR_SYSTEM | CVAR_INIT, "allow toggling console with the tilde key" );
|
||||
#else
|
||||
idCVar com_allowConsole( "com_allowConsole", "1", CVAR_BOOL | CVAR_SYSTEM | CVAR_INIT, "allow toggling console with the tilde key" );
|
||||
|
@ -121,7 +122,11 @@ idCommonLocal commonLocal;
|
|||
idCommon* common = &commonLocal;
|
||||
|
||||
// RB: defaulted this to 1 because we don't have a sound for the intro .bik video
|
||||
idCVar com_skipIntroVideos( "com_skipIntroVideos", "1", CVAR_BOOL , "skips intro videos" );
|
||||
#if defined( ID_RETAIL )
|
||||
idCVar com_skipIntroVideos( "com_skipIntroVideos", "0", CVAR_BOOL , "skips intro videos" );
|
||||
#else
|
||||
idCVar com_skipIntroVideos( "com_skipIntroVideos", "1", CVAR_BOOL , "skips intro videos" );
|
||||
#endif
|
||||
|
||||
// For doom classic
|
||||
struct Globals;
|
||||
|
|
|
@ -59,11 +59,6 @@ If you have questions concerning this license or the applicable additional terms
|
|||
// use a different major for each game
|
||||
#define ASYNC_PROTOCOL_MAJOR 1
|
||||
|
||||
// <= Doom v1.1: 1. no DS_VERSION token ( default )
|
||||
// Doom v1.2: 2
|
||||
// Doom 3 BFG: 3
|
||||
#define RENDERDEMO_VERSION 3
|
||||
|
||||
// win32 info
|
||||
#define WIN32_CONSOLE_CLASS "D3BFG_WinConsole"
|
||||
#define WIN32_WINDOW_CLASS_NAME "D3BFG"
|
||||
|
|
Loading…
Reference in a new issue