########################################################################################################################## # 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_' }