From 0746692d081e4d93caad178acdf29f9fa4751f61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ste=C2=B4phan=20Kochen?= Date: Mon, 30 Apr 2012 13:52:54 +0200 Subject: [PATCH] Trying a gyp-based build system. --- .gitignore | 35 +++++++----- ALAudio/package.gyp | 22 ++++++++ Core/package.gyp | 14 +++++ D3D9Drv/package.gyp | 21 +++++++ D3DDrv/package.gyp | 21 +++++++ Engine/package.gyp | 14 +++++ MiniLaunch/package.gyp | 21 +++++++ OpenGLDrv/package.gyp | 23 ++++++++ SDLDrv/package.gyp | 20 +++++++ SDLLaunch/package.gyp | 24 ++++++++ UCC/package.gyp | 16 ++++++ common.gypi | 123 +++++++++++++++++++++++++++++++++++++++++ surreal.gyp | 25 +++++++++ 13 files changed, 364 insertions(+), 15 deletions(-) create mode 100644 ALAudio/package.gyp create mode 100644 Core/package.gyp create mode 100644 D3D9Drv/package.gyp create mode 100644 D3DDrv/package.gyp create mode 100644 Engine/package.gyp create mode 100644 MiniLaunch/package.gyp create mode 100644 OpenGLDrv/package.gyp create mode 100644 SDLDrv/package.gyp create mode 100644 SDLLaunch/package.gyp create mode 100644 UCC/package.gyp create mode 100644 common.gypi create mode 100644 surreal.gyp diff --git a/.gitignore b/.gitignore index f736c26..04917d0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,19 +1,10 @@ +# Full installation files. .manifest NetGamesUSA.com -System/Surreal -System/UnrealTournament -System/ucc System/*-bin -System/*.u System/*.int System/*.ini -System/*.so* System/*.log -System/*.exe -System/*.exp -System/*.ilk -System/*.lib -System/*.dll Help/*.txt Help/*.ico Help/*.bmp @@ -26,11 +17,6 @@ Web/*.uhtm Web/*.uhtm Web/**/*.uhtm Web/**/*.gif -*/release-* -*/debug-* -*/Src/Release -*/Src/Debug -*/Lib README README.Loki README.bonus.pack.collection @@ -42,6 +28,25 @@ ucc uninstall ut ut.xpm + +# Generated project files. +Makefile +*.Makefile +*.mk +*.sln *.suo *.ncb *.vcproj.* + +# Build products. +out +System/Surreal +System/UnrealTournament +System/ucc +System/*.so* +System/*.u +System/*.exe +System/*.lib +System/*.dll +System/*.exp +System/*.ilk diff --git a/ALAudio/package.gyp b/ALAudio/package.gyp new file mode 100644 index 0000000..f6a04b5 --- /dev/null +++ b/ALAudio/package.gyp @@ -0,0 +1,22 @@ +{ + "includes": ["../common.gypi"], + "targets": [ + { + "target_name": "ALAudio", + "dependencies": [ + "../Core/package.gyp:*", + "../Engine/package.gyp:*" + ], + "libraries": [ + "-lopenal", + "-lalure", + "-lmikmod" + ], + "sources": [ + "Src/ALAudio.cpp", + "Src/ALAudioSubsystem.cpp", + "Src/ALAudioMusic.cpp" + ] + } + ] +} diff --git a/Core/package.gyp b/Core/package.gyp new file mode 100644 index 0000000..226bc01 --- /dev/null +++ b/Core/package.gyp @@ -0,0 +1,14 @@ +{ + "includes": ["../common.gypi"], + "targets": [ + { + "target_name": "Core", + "type": "none", + "direct_dependent_settings": { + "libraries": [ + "-lCore" + ] + } + } + ] +} diff --git a/D3D9Drv/package.gyp b/D3D9Drv/package.gyp new file mode 100644 index 0000000..1969e14 --- /dev/null +++ b/D3D9Drv/package.gyp @@ -0,0 +1,21 @@ +{ + "includes": ["../common.gypi"], + "targets": [ + { + "target_name": "D3D9Drv", + "dependencies": [ + "../Core/package.gyp:*", + "../Engine/package.gyp:*" + ], + "libraries": [ + "-lwinmm", + "-ld3dx9", + "-ladvapi32" + ], + "sources": [ + "Src/D3D9Drv.cpp", + "Src/D3D9.cpp" + ] + } + ] +} diff --git a/D3DDrv/package.gyp b/D3DDrv/package.gyp new file mode 100644 index 0000000..98ebd02 --- /dev/null +++ b/D3DDrv/package.gyp @@ -0,0 +1,21 @@ +{ + "includes": ["../common.gypi"], + "targets": [ + { + "target_name": "D3DDrv", + "dependencies": [ + "../Core/package.gyp:*", + "../Engine/package.gyp:*" + ], + "libraries": [ + "-lDxGuid", + "-ld3dim" + ], + "sources": [ + "Src/D3DDrv.cpp", + "Src/Direct3D7.cpp", + "Src/und3d.cpp" + ] + } + ] +} diff --git a/Engine/package.gyp b/Engine/package.gyp new file mode 100644 index 0000000..bc859c1 --- /dev/null +++ b/Engine/package.gyp @@ -0,0 +1,14 @@ +{ + "includes": ["../common.gypi"], + "targets": [ + { + "target_name": "Engine", + "type": "none", + "direct_dependent_settings": { + "libraries": [ + "-lEngine" + ] + } + } + ] +} diff --git a/MiniLaunch/package.gyp b/MiniLaunch/package.gyp new file mode 100644 index 0000000..908d117 --- /dev/null +++ b/MiniLaunch/package.gyp @@ -0,0 +1,21 @@ +{ + "includes": ["../common.gypi"], + "targets": [ + { + "target_name": "MiniLaunch", + "type": "executable", + "dependencies": [ + "../Core/package.gyp:*", + "../Engine/package.gyp:*" + ], + "sources": [ + "Src/MiniLaunch.cpp" + ], + "conditions": [ + ["OS == 'win'", { + "libraries": [ "-lwinmm" ] + }] + ] + } + ] +} diff --git a/OpenGLDrv/package.gyp b/OpenGLDrv/package.gyp new file mode 100644 index 0000000..3d6b161 --- /dev/null +++ b/OpenGLDrv/package.gyp @@ -0,0 +1,23 @@ +{ + "includes": ["../common.gypi"], + "targets": [ + { + "target_name": "OpenGLDrv", + "dependencies": [ + "../Core/package.gyp:*", + "../Engine/package.gyp:*" + ], + "defines": [ + "UTGLR_UT_BUILD=1" + ], + "libraries": [ + "-lSDL" + ], + "sources": [ + "Src/OpenGLDrv.cpp", + "Src/OpenGL.cpp", + "Src/c_gclip.cpp" + ] + } + ] +} diff --git a/SDLDrv/package.gyp b/SDLDrv/package.gyp new file mode 100644 index 0000000..c9fe5f1 --- /dev/null +++ b/SDLDrv/package.gyp @@ -0,0 +1,20 @@ +{ + "includes": ["../common.gypi"], + "targets": [ + { + "target_name": "SDLDrv", + "dependencies": [ + "../Core/package.gyp:*", + "../Engine/package.gyp:*" + ], + "libraries": [ + "-lSDL" + ], + "sources": [ + "Src/SDLDrv.cpp", + "Src/SDLClient.cpp", + "Src/SDLViewport.cpp" + ] + } + ] +} diff --git a/SDLLaunch/package.gyp b/SDLLaunch/package.gyp new file mode 100644 index 0000000..0ee6620 --- /dev/null +++ b/SDLLaunch/package.gyp @@ -0,0 +1,24 @@ +{ + "includes": ["../common.gypi"], + "targets": [ + { + "target_name": "SDLLaunch", + "type": "executable", + "dependencies": [ + "../Core/package.gyp:*", + "../Engine/package.gyp:*" + ], + "libraries": [ + "-lSDL", + ], + "sources": [ + "Src/SDLLaunch.cpp" + ], + "conditions": [ + ["OS == 'win'", { + "libraries": [ "-lSDLmain" ] + }] + ] + } + ] +} diff --git a/UCC/package.gyp b/UCC/package.gyp new file mode 100644 index 0000000..b0bb222 --- /dev/null +++ b/UCC/package.gyp @@ -0,0 +1,16 @@ +{ + "includes": ["../common.gypi"], + "targets": [ + { + "target_name": "UCC", + "type": "executable", + "dependencies": [ + "../Core/package.gyp:*", + "../Engine/package.gyp:*" + ], + "sources": [ + "Src/UCC.cpp" + ] + } + ] +} diff --git a/common.gypi b/common.gypi new file mode 100644 index 0000000..ab4a5e3 --- /dev/null +++ b/common.gypi @@ -0,0 +1,123 @@ +{ + "variables": { + # Build shared libraries by default. + "library%": "shared_library", + # This is a silly hack to delay path transformation until after including, + # but before dependent settings are merged. + "package_includes": "Inc" + }, + + "target_defaults": { + "type": "<(library)", + "product_prefix": '', + + "include_dirs": [ "<(package_includes)" ], + "all_dependent_settings": { + "include_dirs": [ "<(package_includes)" ] + }, + + "conditions": [ + ["library == 'static_library'", { + "defines": [ "__STATIC_LINK=1" ] + }], + ["OS == 'linux'", { + "cflags": [ + "-O2", "-Werror", "-D_REENTRANT", + # FIXME: offsetof is incorrectly used to set a C++ UProperty. + "-Wno-error=invalid-offsetof", + # FIXME: some APIs (SDL_putenv, mikmod) incorrectly don't take const char*. + "-Wno-error=write-strings" + ], + "defines": [ + "__LINUX__", + "GPackage=GPackage>(_target_name)" + ], + "conditions": [ + ["_type == 'shared_library'", { + "cflags": [ "-fPIC" ] + }] + ] + }], + ["OS == 'win'", { + "defines": [ + "WIN32", + "ThisPackage=>(_target_name)" + ], + "conditions": [ + ["_type == 'shared_library'", { + "defines": [ "_DLL" ] + }] + ], + "msvs_cygwin_shell": 0, + "msvs_settings": { + "VCCLCompilerTool": { + "StructMemberAlignment": 3, + "BufferSecurityCheck": "false", + "FloatingPointModel": 2, + "TreatWChar_tAsBuiltInType": "false", + "WarningLevel": 4, + "SuppressStartupBanner": "true" + }, + "VCLinkerTool": { + "SuppressStartupBanner": "true", + "GenerateMapFile": "true", + "RandomizedBaseAddress": 1, + "DataExecutionPrevention": 0, + "TargetMachine": 1 + } + } + }] + ], + + "default_configuration": "Release", + "configurations": { + "Debug": { + "defines": [ "_REALLY_WANT_DEBUG" ], + "conditions": [ + ["OS == 'linux'", { + "cflags": [ "-ggdb" ] + }], + ["OS == 'win'", { + "msvs_settings": { + "VCCLCompilerTool": { + "Optimization": 1, + "InlineFunctionExpansion": 0, + "MinimalRebuild": "true", + "BasicRuntimeChecks": 0, + "RuntimeLibrary": 1, + "DebugInformationFormat": 3 + }, + "VCLinkerTool": { + "LinkIncremental": 2, + "GenerateDebugInformation": "true" + } + } + }] + ] + }, + "Release": { + "conditions": [ + ["OS == 'linux'", { + "cflags": [ "-fomit-frame-pointer" ] + }], + ["OS == 'win'", { + "msvs_settings": { + "VCCLCompilerTool": { + "Optimization": 2, + "InlineFunctionExpansion": 1, + "StringPooling": "true", + "RuntimeLibrary": 0, + "EnableFunctionLevelLinking": "true", + "AssemblerOutput": 4, + "DebugInformationFormat": 0 + }, + "VCLinkerTool": { + "LinkIncremental": 1 + } + } + }] + ] + } + } + } +} diff --git a/surreal.gyp b/surreal.gyp new file mode 100644 index 0000000..7793db6 --- /dev/null +++ b/surreal.gyp @@ -0,0 +1,25 @@ +# Dummy target that simply depends on packages. +{ + "targets": [ + { + "target_name": "RootMeta", + "type": "none", + "dependencies": [ + "MiniLaunch/package.gyp:*", + "SDLLaunch/package.gyp:*", + "SDLDrv/package.gyp:*", + "OpenGLDrv/package.gyp:*", + "ALAudio/package.gyp:*", + "UCC/package.gyp:*" + ], + "conditions": [ + ["OS == 'win'", { + "dependencies": [ + "D3DDrv/package.gyp:*" + "D3D9Drv/package.gyp:*" + ] + }] + ] + } + ] +}