From c2929728b60c9d5051acbce095d44da946cc080f Mon Sep 17 00:00:00 2001 From: Jon Turney Date: Mon, 10 Feb 2014 18:12:14 +0000 Subject: [PATCH 09/19] Teach gyp generated Makefile to build crash_generation_app correctly - Use linker flag for Windows subsystem - Use linker flag for unicode - Add rule for compiling windows resources, using $RC to name the resource compiler - Rename crash_generation_app.rc to avoid a clash in corresponding .o names Also - Fix linking of unit test when built using gyp generated Makefile by providing needed library XXX: We need to arrange for the gyp Makefile generator to set CXXFLAGS="-DUNICODE -D_UNICODE" somewhere when generating for Windows. This is already done in generated MSVS projects. Signed-off-by: Jon Turney --- .../crash_generation_app.gyp | 29 ++++++++++++++++--- .../{crash_generation_app.rc => resource.rc} | 13 ++++----- src/client/windows/unittests/client_tests.gyp | 12 ++++++-- 3 files changed, 41 insertions(+), 13 deletions(-) rename src/client/windows/tests/crash_generation_app/{crash_generation_app.rc => resource.rc} (96%) diff --git a/src/client/windows/tests/crash_generation_app/crash_generation_app.gyp b/src/client/windows/tests/crash_generation_app/crash_generation_app.gyp index 3ce307da..774f6004 100644 --- a/src/client/windows/tests/crash_generation_app/crash_generation_app.gyp +++ b/src/client/windows/tests/crash_generation_app/crash_generation_app.gyp @@ -40,19 +40,40 @@ 'crash_generation_app.cc', 'crash_generation_app.h', 'crash_generation_app.ico', - 'crash_generation_app.rc', + 'resource.rc', 'resource.h', 'small.ico', ], - 'libraries': [ - 'user32.lib', - ], 'dependencies': [ '../../breakpad_client.gyp:common', '../../crash_generation/crash_generation.gyp:crash_generation_server', '../../crash_generation/crash_generation.gyp:crash_generation_client', '../../handler/exception_handler.gyp:exception_handler', ], + 'conditions': [ + [ '"<(GENERATOR)" == "make"', { + 'ldflags': [ + '-Wl,--subsystem=2', '-municode' + ], + 'rules': [ + { 'rule_name': 'windres', + 'extension': 'rc', + 'inputs' : [ ], + 'outputs' : [ '$(builddir)/<(RULE_INPUT_ROOT).o' ], + 'action' : [ '$(RC)', '--input=<(RULE_INPUT_PATH)', '--output=$(builddir)/<(RULE_INPUT_ROOT).o', '--input-format=rc', '--output-format=coff', '-v', '--use-temp-file' ], + 'message' : 'Compiling Windows resources', + 'process_outputs_as_sources' : 1, + }, + ], + } + ], + [ '"<(GENERATOR)" == "msvs"', { + 'libraries': [ + 'user32.lib', + ], + } + ] + ], 'msvs_settings': { 'VCLinkerTool': { 'SubSystem': '2', # Windows Subsystem as opposed to a console app diff --git a/src/client/windows/tests/crash_generation_app/crash_generation_app.rc b/src/client/windows/tests/crash_generation_app/resource.rc similarity index 96% rename from src/client/windows/tests/crash_generation_app/crash_generation_app.rc rename to src/client/windows/tests/crash_generation_app/resource.rc index a362562b..6c7e8b63 100644 --- a/src/client/windows/tests/crash_generation_app/crash_generation_app.rc +++ b/src/client/windows/tests/crash_generation_app/resource.rc @@ -38,7 +38,7 @@ IDI_SMALL ICON "small.ico" // Menu // -IDC_CRASHGENERATIONAPP MENU +IDC_CRASHGENERATIONAPP MENU BEGIN POPUP "&File" BEGIN @@ -64,7 +64,7 @@ END // Accelerator // -IDC_CRASHGENERATIONAPP ACCELERATORS +IDC_CRASHGENERATIONAPP ACCELERATORS BEGIN "?", IDM_ABOUT, ASCII, ALT "/", IDM_ABOUT, ASCII, ALT @@ -94,12 +94,12 @@ END // TEXTINCLUDE // -1 TEXTINCLUDE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE +2 TEXTINCLUDE BEGIN "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" "#include ""windows.h""\r\n" @@ -107,7 +107,7 @@ BEGIN "\0" END -3 TEXTINCLUDE +3 TEXTINCLUDE BEGIN "\r\n" "\0" @@ -121,7 +121,7 @@ END // String Table // -STRINGTABLE +STRINGTABLE BEGIN IDS_APP_TITLE "CrashGenerationApp" IDC_CRASHGENERATIONAPP "CRASHGENERATIONAPP" @@ -141,4 +141,3 @@ END ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED - diff --git a/src/client/windows/unittests/client_tests.gyp b/src/client/windows/unittests/client_tests.gyp index 768f8fd8..87caf8d6 100644 --- a/src/client/windows/unittests/client_tests.gyp +++ b/src/client/windows/unittests/client_tests.gyp @@ -51,8 +51,16 @@ '../crash_generation/crash_generation.gyp:crash_generation_server', '../crash_generation/crash_generation.gyp:crash_generation_client', '../handler/exception_handler.gyp:exception_handler', - 'processor_bits', - ] + 'processor_bits', + ], + 'conditions': [ + [ '"<(GENERATOR)" == "make"', { + 'libraries': [ + '-ldbghelp', '-lversion', '-lpthread', + ], + }, + ], + ], }, { 'target_name': 'processor_bits', -- 2.28.0