Files
gtav-src/tools_ng/etc/projgen9/ragebuilder.rules
T
2025-09-29 00:52:08 +02:00

156 lines
8.0 KiB
Plaintext
Executable File

##########################################################################################################################
# RULES FILE
# Usage & Details : https://devstar.rockstargames.com/wiki/index.php/Dev:Project_builder3#game.rules
##########################################################################################################################
ExporterRules[Exporter=~'VS201'] { # The family of VS201X exporters ( VCXPROJ )
#-------------------------------------------------------------------------------------------
# Scratch ( ExporterRules )
#-------------------------------------------------------------------------------------------
Scratch.VS[Exporter=~'VS2017'] = '2017'
Scratch.VS[Exporter=~'VS2019'] = '2019'
#-------------------------------------------------------------------------------------------
# Platform Toolset
#-------------------------------------------------------------------------------------------
Settings.General.PlatformToolset = '$(DefaultPlatformToolset)'
# For solutions with multiple executables, avoid linking errors with separate intermediate directories.
Settings.General.OutputDirectoryName = '$(RS_TOOLSROOT)\bin\RageBuilderGen9\'
Settings.General.TargetExt = '.exe'
Settings.General.TargetName = '$(ProjectName)_$(Configuration)$(RS_BRANCHSUFFIX)'
# Settings.General.IncludePath += '$(DXSDK_DIR)\Include'
# Settings.General.LibraryPath += '$(DXSDK_DIR)\Lib\x64'
Settings.General.CharacterSet = 'MultiByte'
Settings.Linker.OutputFilename = '$(RS_TOOLSROOT)\bin\RageBuilderGen9\$(TargetName).exe'
Settings.Linker.ProgramDatabaseFile = '$(RS_TOOLSROOT)\bin\RageBuilderGen9\$(TargetName).pdb'
Settings.Linker.MapFilename = '$(RS_TOOLSROOT)\bin\RageBuilderGen9\$(TargetName).map'
Settings.Linker.EnableCOMDATFolding = 'true'
Settings.Linker.OptimizeReferences = 'true'
Settings.Linker.GenerateMapFile = 'true'
Settings.Linker.GenerateDebugInfo = 'true'
Settings.Linker.SubSystem = 'Console'
Settings.Linker.RandomizedBaseAddress = 'false'
#Settings.Linker.IgnoreLibraries += '$(IgnoreLibraries)'
Action Settings.Linker.IgnoreLibraries {
[Config=='Beta'] += 'libcmt.lib'
[Config=='Debug'] += 'libcmt.lib'
}
Settings.Compiler.RuntimeTypeInfo = 'true'
Settings.Compiler.TreatWarningsAsErrors = 'true'
Settings.Compiler.WarningLevel = 'Level3' # Off, Level1, Level2, Level3, Level4
Settings.Compiler.DebugInformationFormat = 'ProgramDatabase'
Settings.Compiler.PrecompiledHeader = ''
Settings.Compiler.PrecompiledHeaderFile = ''
Settings.Compiler.ExceptionHandling = ''
Settings.Compiler.ProgramDataBaseFileName = '$(IntDir)$(TargetName).pdb'
Action Settings.Compiler.RunTimeLibrary {
= 'MultiThreaded'
[Config=~'Debug'] = 'MultiThreadedDebug'
}
Settings.Compiler.CompileAs = 'default'
Settings.Compiler.BasicRuntimeChecks = 'default'
Settings.Compiler.BasicRuntimeChecks[Config=~'Debug'] = 'EnableFastChecks'
Action Settings.Compiler.Optimization {
[Config=='Beta'] = 'MaxSpeed'
[Config=='Debug'] = 'Disabled'
[Config=='Release'] = 'MaxSpeed'
}
Action Settings.Compiler.PreprocessorDefinitions {
+= '_CONSOLE;GTA_PC;HTML_RESOURCE;RAGEBUILDER;NAVGEN_TOOL;NOCRYPT;NOUNCRYPT;WIN32;_LIB'
[Config=~'Debug'] += '_DEBUG'
[Config=~'Beta'] += '_DEBUG'
[Config=~'Release'] += 'NDEBUG'
}
Action Settings.Compiler.ForceIncludes {
='$(RAGE_DIR)\framework\tools\src\GTA_tools\include\basetypes.h;$(ProjectDir)\ragebuilder_dll.h'
[Config=='Beta'] += '$(RAGE_DIR)\base\src\forceinclude\win64_rscdebug.h'
[Config=='Debug'] += '$(RAGE_DIR)\base\src\forceinclude\win64_rscdebug.h'
[Config=='Release'] += '$(RAGE_DIR)\base\src\forceinclude\win64_rscrelease.h'
}
# Already dealt with in props
# Action Settings.Compiler.AdditionalIncludeDirectories {
## += '$(RAGE_3RDPARTY)\cli\zlib-1.2.3'
## += '$(RAGE_DIR)\framework\src'
## += '$(RAGE_DIR)\base\src'
## += '$(RAGE_3RDPARTY)\cli\LUA\include'
## += '$(RS_CODEBRANCH)\tools\framework\dcc\libs\RsULog'
## += '$(RS_CODEBRANCH)\tools\framework\GTA_Tools\'
# += '$(RS_CODEBRANCH)\tools\framework\GTA_Tools\include'
# += '$(RAGE_DIR)\suite\src'
# += '$(RS_CODEBRANCH)\tools\suite\cli'
# += '$(RAGE_DIR)\script\src'
# += '$(RS_CODEBRANCH)\tools\base'
## += '$(RS_CODEBRANCH)\tools\framework\GTA_Tools\navgen'
# += '$(RAGE_3RDPARTY)\cli\AMD\ATI_Compress'
# += '$(RAGE_3RDPARTY)\libs\Compressonator\Compressonator\Header'
# += '$(SCE_PS3_ROOT)\host-common\include'
# += '$(SCE_PS3_ROOT)\hot-win32\ppu\include'
# += '$(RS_CODEBRANCH)\tools\base\cli'
# += '$(RS_CODEBRANCH)\tools\base\libs'
# += '$(RAGE_3RDPARTY)\cli\libxml2-2.7.6\include'
## += '$(XEDK)/include/win32/vs2008'
## += '$(XEDK)/include/win32/vs2005'
## += '$(XEDK)/include/win32'
# += '$(RAGE_DIR)/3rdparty/crunch/inc'
# += '$(RAGE_DIR)/3rdparty/basis/inc'
# += '$(RS_CODEBRANCH)\tools\framework\cli\rorc'
# += '$(RS_CODEBRANCH)\tools\framework\cli\rorc\ResourceCompiler'
# }
#
#
# Action Settings.Linker.AdditionalLibraryDirectories {
# += '$(RAGE_DIR)\lib'
# += '$(RAGE_3RDPARTY)/cli/lua/lib/'
# += '$(RS_CODEBRANCH)\tools\base\devil'
# += '$(XEDK)/lib/win64/vs2008'
# += '$(RAGE_DIR)/3rdparty/basis/lib'
# [Config!='Debug'] += '$(RAGE_3RDPARTY)\cli\AMD\ATI_Compress\VS2012\Release\x64
# [Config=='Debug'] += '$(RAGE_3RDPARTY)\cli\AMD\ATI_Compress\VS2012\Debug\x64
# }
#
# Action Settings.Linker.AdditionalDependencies {
# += '$(XboxOneXDKLatest)/PC/lib/amd64/xg.lib'
# += '$(XboxOneXDKLatest)/xdk/lib/amd64/xg_x.lib'
# += '$(SCE_ORBIS_SDK_DIR)/host_tools/lib/libSceGpuAddress.lib'
# += '$(SCE_ORBIS_SDK_DIR)/host_tools/lib/libSceGnm.lib'
# += '$(SCE_ORBIS_SDK_DIR)/host_tools/lib/libSceShaderBinary.lib'
# += '"$(RAGE_DIR)/../sdk/prospero/host_tools/lib/libSceAgcGpuAddress.lib"'
# += 'AMD_Compress_MT.lib'
# += 'basis.lib'
# # RageAudio requires these libraries to link
# += 'mf.lib;mfplat.lib;mfplay.lib;mfreadwrite.lib;mfuuid.lib;propsys.lib'
# }
#
# Settings.Linker.AdditionalDependencies[Config=='Debug'] += 'crunch_debug.lib'
# Settings.Linker.AdditionalDependencies[Config!='Debug'] += 'crunch_release.lib'
#-------------------------------------------------------------------------------------------
# Build Events ( ExporterRules )
#-------------------------------------------------------------------------------------------
Settings.BuildEvents.PreLink.Description = 'Copying EXE and DLL into $(RS_TOOLSROOT)\bin\RageBuilderGen9\'
# Settings.BuildEvents.PreLink.Command << 'p4 edit "$(TargetDir)$(TargetName).*" "$(RS_TOOLSROOT)\bin\RageBuilderGen9\xg.dll" "$(RS_TOOLSROOT)\bin\RageBuilderGen9\libSceGpuAddress.dll" "$(RS_TOOLSROOT)\bin\RageBuilderGen9\libSceShaderBinary.dll" "$(RS_TOOLSROOT)\bin\RageBuilderGen9\libSceGnm.dll"'
Settings.BuildEvents.PreLink.Command << 'xcopy /D /Y /R "$(GXDKLatest)\bin\Scarlett\xg_xs.dll" "$(RS_TOOLSROOT)\bin\RageBuilderGen9\xg_xs.dll*" _NEWLINE_'
Settings.BuildEvents.PreLink.Command << 'xcopy /D /Y /R "$(GXDKLatest)\bin\Scarlett\XBTC.dll" "$(RS_TOOLSROOT)\bin\RageBuilderGen9\XBTC.dll*" _NEWLINE_'
Settings.BuildEvents.PreLink.Command << 'xcopy /D /Y /R "$(GXDKLatest)\bin\Scarlett\d3d12_xs.dll" "$(RS_TOOLSROOT)\bin\RageBuilderGen9\d3d12_xs.dll*" _NEWLINE_'
Settings.BuildEvents.PreLink.Command << 'xcopy /D /Y /R "$(GXDKLatest)\bin\Scarlett\xbsc_xs.dll" "$(RS_TOOLSROOT)\bin\RageBuilderGen9\xbsc_xs.dll*" _NEWLINE_'
Settings.BuildEvents.PreLink.Command << 'xcopy /D /Y /R "$(GXDKLatest)\bin\Scarlett\xdxrofflinebvh.dll" "$(RS_TOOLSROOT)\bin\RageBuilderGen9\xdxrofflinebvh.dll*" _NEWLINE_'
Settings.BuildEvents.PreLink.Command << 'xcopy /D /Y /R "$(GXDKLatest)\bin\Scarlett\xgs12_pc_xs.dll" "$(RS_TOOLSROOT)\bin\RageBuilderGen9\xgs12_pc_xs.dll*" _NEWLINE_'
Settings.BuildEvents.PreLink.Command << 'xcopy /D /Y /R "$(SCE_PROSPERO_SDK_DIR)\host_tools\bin\libSceAgcGpuAddress.dll" "$(RS_TOOLSROOT)\bin\RageBuilderGen9\libSceAgcGpuAddress.dll*" _NEWLINE_'
Settings.BuildEvents.PreLink.Command << 'xcopy /D /Y /R "$(SCE_PROSPERO_SDK_DIR)\host_tools\bin\libScePsr.dll" "$(RS_TOOLSROOT)\bin\RageBuilderGen9\libScePsr.dll*" _NEWLINE_'
}