From 16788f461aedaca7eb7fc658b6b115ac8a3f5d62 Mon Sep 17 00:00:00 2001 From: Peter Bright Date: Sat, 13 Aug 2011 19:17:47 +0100 Subject: [PATCH] Rename gyp files to produce useful solution names. Hoist common settings into common.gypi. Restrict v8's common.gypi to v8 projects. Ensure v8 doesn't use /MP in debug builds. Add basic settings for other platforms. Make uv import common.gypi properly. Remove LTCG warning. --- common.gypi | 164 +++++++++++++++ deps/http_parser/http_parser.gyp | 61 +----- deps/uv/common.gypi | 165 ++++++++++++++- deps/uv/deps/pthread-win32/build/all.gyp | 207 ------------------- deps/uv/deps/pthread-win32/pthread-win32.gyp | 165 +++++++++++++++ deps/uv/gyp_uv | 26 ++- deps/uv/{all.gyp => uv.gyp} | 63 ++---- deps/v8/tools/gyp/v8-node.gyp | 6 + generate-projects.bat | 3 +- node.gyp | 84 +------- tools/common.gypi | 141 ------------- tools/gyp/pylib/gyp/input.py | 2 +- tools/gyp_node | 10 + 13 files changed, 564 insertions(+), 533 deletions(-) create mode 100644 common.gypi delete mode 100644 deps/uv/deps/pthread-win32/build/all.gyp create mode 100644 deps/uv/deps/pthread-win32/pthread-win32.gyp rename deps/uv/{all.gyp => uv.gyp} (90%) create mode 100644 deps/v8/tools/gyp/v8-node.gyp delete mode 100644 tools/common.gypi diff --git a/common.gypi b/common.gypi new file mode 100644 index 000000000000..745f749dad5c --- /dev/null +++ b/common.gypi @@ -0,0 +1,164 @@ +{ + 'variables': { + 'target_arch%': 'ia32', # set v8's target architecture + 'host_arch%': 'ia32', # set v8's host architecture + 'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds + 'component%': 'static_library', # NB. these names match with what V8 expects + 'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way + }, + + 'target_defaults': { + 'default_configuration': 'Debug', + 'configurations': { + 'Debug': { + 'defines': [ 'DEBUG', '_DEBUG' ], + 'cflags': [ '-g', '-O0' ], + 'msvs_settings': { + 'VCCLCompilerTool': { + 'target_conditions': [ + ['library=="static_library"', { + 'RuntimeLibrary': 1, # static debug + }, { + 'RuntimeLibrary': 3, # DLL debug + }], + ], + 'Optimization': 0, # /Od, no optimization + 'MinimalRebuild': 'true', + 'OmitFramePointers': 'false', + 'BasicRuntimeChecks': 3, # /RTC1 + }, + 'VCLinkerTool': { + 'LinkIncremental': 2, # enable incremental linking + }, + }, + }, + 'Release': { + 'defines': [ 'NDEBUG' ], + 'cflags': [ '-O3', '-fomit-frame-pointer', '-fdata-sections', '-ffunction-sections' ], + 'msvs_settings': { + 'VCCLCompilerTool': { + 'target_conditions': [ + ['library=="static_library"', { + 'RuntimeLibrary': 0, # static release + }, { + 'RuntimeLibrary': 2, # debug release + }], + ], + 'Optimization': 3, # /Ox, full optimization + 'FavorSizeOrSpeed': 1, # /Ot, favour speed over size + 'InlineFunctionExpansion': 2, # /Ob2, inline anything eligible + 'WholeProgramOptimization': 'true', # /GL, whole program optimization, needed for LTCG + 'OmitFramePointers': 'true', + 'EnableFunctionLevelLinking': 'true', + 'EnableIntrinsicFunctions': 'true', + 'AdditionalOptions': [ + '/MP', # compile across multiple CPUs + ], + }, + 'VCLibrarianTool': { + 'AdditionalOptions': [ + '/LTCG', # link time code generation + ], + }, + 'VCLinkerTool': { + 'LinkTimeCodeGeneration': 1, # link-time code generation + 'OptimizeReferences': 2, # /OPT:REF + 'EnableCOMDATFolding': 2, # /OPT:ICF + 'LinkIncremental': 1, # disable incremental linking + }, + }, + } + }, + 'msvs_settings': { + 'VCCLCompilerTool': { + 'StringPooling': 'true', # pool string literals + 'DebugInformationFormat': 3, # Generate a PDB + 'WarningLevel': 3, + 'BufferSecurityCheck': 'true', + 'ExceptionHandling': 1, # /EHsc + 'SuppressStartupBanner': 'true', + 'WarnAsError': 'false', + }, + 'VCLibrarianTool': { + }, + 'VCLinkerTool': { + 'GenerateDebugInformation': 'true', + 'RandomizedBaseAddress': 2, # enable ASLR + 'DataExecutionPrevention': 2, # enable DEP + 'AllowIsolation': 'true', + 'SuppressStartupBanner': 'true', + }, + }, + 'conditions': [ + ['OS == "win"', { + 'msvs_cygwin_shell': 0, # prevent actions from trying to use cygwin + 'defines': [ + 'WIN32', + # we don't really want VC++ warning us about + # how dangerous C functions are... + '_CRT_SECURE_NO_DEPRECATE', + # ... or that C implementations shouldn't use + # POSIX names + '_CRT_NONSTDC_NO_DEPRECATE', + ], + }], + [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { + 'target_defaults': { + 'cflags': [ '-Wall', '-pthread', '-fno-rtti', '-fno-exceptions' ], + 'ldflags': [ '-pthread', ], + 'conditions': [ + [ 'target_arch=="ia32"', { + 'cflags': [ '-m32' ], + 'ldflags': [ '-m32' ], + }], + [ 'OS=="linux"', { + 'cflags': [ '-ansi' ], + }], + [ 'visibility=="hidden"', { + 'cflags': [ '-fvisibility=hidden' ], + }], + ], + }, + }], + ['OS=="mac"', { + 'target_defaults': { + 'xcode_settings': { + 'ALWAYS_SEARCH_USER_PATHS': 'NO', + 'GCC_C_LANGUAGE_STANDARD': 'ansi', # -ansi + 'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks + 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic + # (Equivalent to -fPIC) + 'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', # -fno-exceptions + 'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti + 'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings + # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden + 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES', + 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden + 'GCC_THREADSAFE_STATICS': 'NO', # -fno-threadsafe-statics + 'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES', # -Werror + 'GCC_VERSION': '4.2', + 'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES', # -Wnewline-eof + 'MACOSX_DEPLOYMENT_TARGET': '10.4', # -mmacosx-version-min=10.4 + 'PREBINDING': 'NO', # No -Wl,-prebind + 'USE_HEADERMAP': 'NO', + 'OTHER_CFLAGS': [ + '-fno-strict-aliasing', + ], + 'WARNING_CFLAGS': [ + '-Wall', + '-Wendif-labels', + '-W', + '-Wno-unused-parameter', + '-Wnon-virtual-dtor', + ], + }, + 'target_conditions': [ + ['_type!="static_library"', { + 'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']}, + }], + ], + }, + }], + ], + }, +} diff --git a/deps/http_parser/http_parser.gyp b/deps/http_parser/http_parser.gyp index c6eada707f27..bd45122230f7 100644 --- a/deps/http_parser/http_parser.gyp +++ b/deps/http_parser/http_parser.gyp @@ -5,69 +5,24 @@ # ./gyp/gyp -f make --depth=`pwd` http_parser.gyp # ./out/Debug/test { - 'target_defaults': { - 'default_configuration': 'Debug', - 'configurations': { - # TODO: hoist these out and put them somewhere common, because - # RuntimeLibrary MUST MATCH across the entire project - 'Debug': { - 'defines': [ 'DEBUG', '_DEBUG' ], - 'msvs_settings': { - 'VCCLCompilerTool': { - 'RuntimeLibrary': 1, # static debug - }, - }, - }, - 'Release': { - 'defines': [ 'NDEBUG' ], - 'msvs_settings': { - 'VCCLCompilerTool': { - 'RuntimeLibrary': 0, # static release - }, - }, - } - }, - 'msvs_settings': { - 'VCCLCompilerTool': { - }, - 'VCLibrarianTool': { - }, - 'VCLinkerTool': { - 'GenerateDebugInformation': 'true', - }, - }, - 'conditions': [ - ['OS == "win"', { - 'defines': [ - 'WIN32' - ], - }] - ], - }, - 'targets': [ { 'target_name': 'http_parser', - 'type': 'static_library', + 'type': '<(library)', 'include_dirs': [ '.' ], 'direct_dependent_settings': { 'include_dirs': [ '.' ], }, 'defines': [ 'HTTP_PARSER_STRICT=0' ], 'sources': [ './http_parser.c', ], - 'conditions': [ - ['OS=="win"', { - 'msvs_settings': { - 'VCCLCompilerTool': { - # Compile as C++. http_parser.c is actually C99, but C++ is - # close enough in this case. - 'CompileAs': 2, - }, - }, - }] - ], + 'msvs_settings': { + 'VCCLCompilerTool': { + # Compile as C++. http_parser.c is actually C99, but C++ is + # close enough in this case. + 'CompileAs': 2, # compile as C++ + }, + }, }, - { 'target_name': 'test', 'type': 'executable', diff --git a/deps/uv/common.gypi b/deps/uv/common.gypi index 440519f54177..840d3a7a285d 100644 --- a/deps/uv/common.gypi +++ b/deps/uv/common.gypi @@ -1,13 +1,164 @@ { - 'conditions': [ - ['OS=="win"', { - 'target_defaults': { + 'variables': { + 'target_arch%': 'ia32', # set v8's target architecture + 'host_arch%': 'ia32', # set v8's host architecture + 'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds + 'component%': 'static_library', # NB. these names match with what V8 expects + 'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way + }, + + 'target_defaults': { + 'default_configuration': 'Debug', + 'configurations': { + 'Debug': { + 'defines': [ 'DEBUG', '_DEBUG' ], + 'cflags': [ '-g', '-O0' ], 'msvs_settings': { + 'VCCLCompilerTool': { + 'target_conditions': [ + ['library=="static_library"', { + 'RuntimeLibrary': 1, # static debug + }, { + 'RuntimeLibrary': 3, # DLL debug + }], + ], + 'Optimization': 0, # /Od, no optimization + 'MinimalRebuild': 'true', + 'OmitFramePointers': 'false', + 'BasicRuntimeChecks': 3, # /RTC1 + }, + 'VCLinkerTool': { + 'LinkIncremental': 2, # enable incremental linking + }, + }, + }, + 'Release': { + 'defines': [ 'NDEBUG' ], + 'cflags': [ '-O3', '-fomit-frame-pointer', '-fdata-sections', '-ffunction-sections' ], + 'msvs_settings': { + 'VCCLCompilerTool': { + 'target_conditions': [ + ['library=="static_library"', { + 'RuntimeLibrary': 0, # static release + }, { + 'RuntimeLibrary': 2, # debug release + }], + ], + 'Optimization': 3, # /Ox, full optimization + 'FavorSizeOrSpeed': 1, # /Ot, favour speed over size + 'InlineFunctionExpansion': 2, # /Ob2, inline anything eligible + 'WholeProgramOptimization': 'true', # /GL, whole program optimization, needed for LTCG + 'OmitFramePointers': 'true', + 'EnableFunctionLevelLinking': 'true', + 'EnableIntrinsicFunctions': 'true', + 'AdditionalOptions': [ + '/MP', # compile across multiple CPUs + ], + }, + 'VCLibrarianTool': { + 'AdditionalOptions': [ + '/LTCG', # link time code generation + ], + }, 'VCLinkerTool': { - 'GenerateDebugInformation': 'true', + 'LinkTimeCodeGeneration': 1, # link-time code generation + 'OptimizeReferences': 2, # /OPT:REF + 'EnableCOMDATFolding': 2, # /OPT:ICF + 'LinkIncremental': 1, # disable incremental linking }, }, + } + }, + 'msvs_settings': { + 'VCCLCompilerTool': { + 'StringPooling': 'true', # pool string literals + 'DebugInformationFormat': 3, # Generate a PDB + 'WarningLevel': 3, + 'BufferSecurityCheck': 'true', + 'ExceptionHandling': 1, # /EHsc + 'SuppressStartupBanner': 'true', + 'WarnAsError': 'false', + }, + 'VCLibrarianTool': { }, - }], # OS=="win" - ], -} \ No newline at end of file + 'VCLinkerTool': { + 'GenerateDebugInformation': 'true', + 'RandomizedBaseAddress': 2, # enable ASLR + 'DataExecutionPrevention': 2, # enable DEP + 'AllowIsolation': 'true', + 'SuppressStartupBanner': 'true', + }, + }, + 'conditions': [ + ['OS == "win"', { + 'msvs_cygwin_shell': 0, # prevent actions from trying to use cygwin + 'defines': [ + 'WIN32', + # we don't really want VC++ warning us about + # how dangerous C functions are... + '_CRT_SECURE_NO_DEPRECATE', + # ... or that C implementations shouldn't use + # POSIX names + '_CRT_NONSTDC_NO_DEPRECATE', + ], + }], + [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { + 'target_defaults': { + 'cflags': [ '-Wall', '-pthread', '-fno-rtti', '-fno-exceptions' ], + 'ldflags': [ '-pthread', ], + 'conditions': [ + [ 'target_arch=="ia32"', { + 'cflags': [ '-m32' ], + 'ldflags': [ '-m32' ], + }], + [ 'OS=="linux"', { + 'cflags': [ '-ansi' ], + }], + [ 'visibility=="hidden"', { + 'cflags': [ '-fvisibility=hidden' ], + }], + ], + }, + }], + ['OS=="mac"', { + 'target_defaults': { + 'xcode_settings': { + 'ALWAYS_SEARCH_USER_PATHS': 'NO', + 'GCC_C_LANGUAGE_STANDARD': 'ansi', # -ansi + 'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks + 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic + # (Equivalent to -fPIC) + 'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', # -fno-exceptions + 'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti + 'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings + # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden + 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES', + 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden + 'GCC_THREADSAFE_STATICS': 'NO', # -fno-threadsafe-statics + 'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES', # -Werror + 'GCC_VERSION': '4.2', + 'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES', # -Wnewline-eof + 'MACOSX_DEPLOYMENT_TARGET': '10.4', # -mmacosx-version-min=10.4 + 'PREBINDING': 'NO', # No -Wl,-prebind + 'USE_HEADERMAP': 'NO', + 'OTHER_CFLAGS': [ + '-fno-strict-aliasing', + ], + 'WARNING_CFLAGS': [ + '-Wall', + '-Wendif-labels', + '-W', + '-Wno-unused-parameter', + '-Wnon-virtual-dtor', + ], + }, + 'target_conditions': [ + ['_type!="static_library"', { + 'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']}, + }], + ], + }, + }], + ], + }, +} diff --git a/deps/uv/deps/pthread-win32/build/all.gyp b/deps/uv/deps/pthread-win32/build/all.gyp deleted file mode 100644 index 24bf648bc601..000000000000 --- a/deps/uv/deps/pthread-win32/build/all.gyp +++ /dev/null @@ -1,207 +0,0 @@ -{ - 'target_defaults': { - 'default_configuration': 'Debug', - 'configurations': { - # TODO: hoist these out and put them somewhere common, because - # RuntimeLibrary MUST MATCH across the entire project - 'Debug': { - 'defines': [ 'DEBUG', '_DEBUG' ], - 'msvs_settings': { - 'VCCLCompilerTool': { - 'RuntimeLibrary': 1, # static debug - }, - }, - }, - 'Release': { - 'defines': [ 'NDEBUG' ], - 'msvs_settings': { - 'VCCLCompilerTool': { - 'RuntimeLibrary': 0, # static release - }, - }, - } - }, - 'msvs_settings': { - 'VCCLCompilerTool': { - }, - 'VCLibrarianTool': { - }, - 'VCLinkerTool': { - 'GenerateDebugInformation': 'true', - }, - }, - 'conditions': [ - ['OS == "win"', { - 'defines': [ - 'WIN32' - ], - }] - ], - }, - - 'targets': [ - { - 'target_name': 'pthread-win32', - 'type': 'static_library', - 'include_dirs': [ '../' ], - 'direct_dependent_settings': { - 'include_dirs': [ '../' ], - }, - 'defines': [ - 'HAVE_PTW32_CONFIG_H', - '__CLEANUP_C', - 'WIN32' - ], - 'msvs_settings': { - 'VCCLCompilerTool': { - }, - 'VCLibrarianTool': { - }, - 'VCLinkerTool': { - 'GenerateDebugInformation': 'true', - }, - }, - 'sources': [ - '../autostatic.c', - '../cleanup.c', - '../create.c', - '../dll.c', - '../errno.c', - '../fork.c', - '../global.c', - '../pthread_attr_destroy.c', - '../pthread_attr_getdetachstate.c', - '../pthread_attr_getinheritsched.c', - '../pthread_attr_getschedparam.c', - '../pthread_attr_getschedpolicy.c', - '../pthread_attr_getscope.c', - '../pthread_attr_getstackaddr.c', - '../pthread_attr_getstacksize.c', - '../pthread_attr_init.c', - '../pthread_attr_setdetachstate.c', - '../pthread_attr_setinheritsched.c', - '../pthread_attr_setschedparam.c', - '../pthread_attr_setschedpolicy.c', - '../pthread_attr_setscope.c', - '../pthread_attr_setstackaddr.c', - '../pthread_attr_setstacksize.c', - '../pthread_barrierattr_destroy.c', - '../pthread_barrierattr_getpshared.c', - '../pthread_barrierattr_init.c', - '../pthread_barrierattr_setpshared.c', - '../pthread_barrier_destroy.c', - '../pthread_barrier_init.c', - '../pthread_barrier_wait.c', - '../pthread_cancel.c', - '../pthread_condattr_destroy.c', - '../pthread_condattr_getpshared.c', - '../pthread_condattr_init.c', - '../pthread_condattr_setpshared.c', - '../pthread_cond_destroy.c', - '../pthread_cond_init.c', - '../pthread_cond_signal.c', - '../pthread_cond_wait.c', - '../pthread_delay_np.c', - '../pthread_detach.c', - '../pthread_equal.c', - '../pthread_exit.c', - '../pthread_getconcurrency.c', - '../pthread_getschedparam.c', - '../pthread_getspecific.c', - '../pthread_getunique_np.c', - '../pthread_getw32threadhandle_np.c', - '../pthread_join.c', - '../pthread_key_create.c', - '../pthread_key_delete.c', - '../pthread_kill.c', - '../pthread_mutexattr_destroy.c', - '../pthread_mutexattr_getkind_np.c', - '../pthread_mutexattr_getpshared.c', - '../pthread_mutexattr_getrobust.c', - '../pthread_mutexattr_gettype.c', - '../pthread_mutexattr_init.c', - '../pthread_mutexattr_setkind_np.c', - '../pthread_mutexattr_setpshared.c', - '../pthread_mutexattr_setrobust.c', - '../pthread_mutexattr_settype.c', - '../pthread_mutex_consistent.c', - '../pthread_mutex_destroy.c', - '../pthread_mutex_init.c', - '../pthread_mutex_lock.c', - '../pthread_mutex_timedlock.c', - '../pthread_mutex_trylock.c', - '../pthread_mutex_unlock.c', - '../pthread_num_processors_np.c', - '../pthread_once.c', - '../pthread_rwlockattr_destroy.c', - '../pthread_rwlockattr_getpshared.c', - '../pthread_rwlockattr_init.c', - '../pthread_rwlockattr_setpshared.c', - '../pthread_rwlock_destroy.c', - '../pthread_rwlock_init.c', - '../pthread_rwlock_rdlock.c', - '../pthread_rwlock_timedrdlock.c', - '../pthread_rwlock_timedwrlock.c', - '../pthread_rwlock_tryrdlock.c', - '../pthread_rwlock_trywrlock.c', - '../pthread_rwlock_unlock.c', - '../pthread_rwlock_wrlock.c', - '../pthread_self.c', - '../pthread_setcancelstate.c', - '../pthread_setcanceltype.c', - '../pthread_setconcurrency.c', - '../pthread_setschedparam.c', - '../pthread_setspecific.c', - '../pthread_spin_destroy.c', - '../pthread_spin_init.c', - '../pthread_spin_lock.c', - '../pthread_spin_trylock.c', - '../pthread_spin_unlock.c', - '../pthread_testcancel.c', - '../pthread_timechange_handler_np.c', - '../pthread_win32_attach_detach_np.c', - '../ptw32_calloc.c', - '../ptw32_callUserDestroyRoutines.c', - '../ptw32_cond_check_need_init.c', - '../ptw32_getprocessors.c', - '../ptw32_is_attr.c', - '../ptw32_MCS_lock.c', - '../ptw32_mutex_check_need_init.c', - '../ptw32_new.c', - '../ptw32_processInitialize.c', - '../ptw32_processTerminate.c', - '../ptw32_relmillisecs.c', - '../ptw32_reuse.c', - '../ptw32_rwlock_cancelwrwait.c', - '../ptw32_rwlock_check_need_init.c', - '../ptw32_semwait.c', - '../ptw32_spinlock_check_need_init.c', - '../ptw32_threadDestroy.c', - '../ptw32_threadStart.c', - '../ptw32_throw.c', - '../ptw32_timespec.c', - '../ptw32_tkAssocCreate.c', - '../ptw32_tkAssocDestroy.c', - '../sched_getscheduler.c', - '../sched_get_priority_max.c', - '../sched_get_priority_min.c', - '../sched_setscheduler.c', - '../sched_yield.c', - '../sem_close.c', - '../sem_destroy.c', - '../sem_getvalue.c', - '../sem_init.c', - '../sem_open.c', - '../sem_post.c', - '../sem_post_multiple.c', - '../sem_timedwait.c', - '../sem_trywait.c', - '../sem_unlink.c', - '../sem_wait.c', - '../signal.c', - '../w32_CancelableWait.c', - ], - }, - ] -} - diff --git a/deps/uv/deps/pthread-win32/pthread-win32.gyp b/deps/uv/deps/pthread-win32/pthread-win32.gyp new file mode 100644 index 000000000000..2c4c65297ac8 --- /dev/null +++ b/deps/uv/deps/pthread-win32/pthread-win32.gyp @@ -0,0 +1,165 @@ +{ + 'targets': [ + { + 'target_name': 'pthread-win32', + 'type': '<(library)', + 'include_dirs': [ + '.' + ], + 'direct_dependent_settings': { + 'include_dirs': [ + '.' + ], + }, + 'conditions': [ + ['OS=="win"', { + 'defines': [ + 'HAVE_PTW32_CONFIG_H', + '__CLEANUP_C' + ], + 'sources': [ + 'autostatic.c', + 'cleanup.c', + 'create.c', + 'dll.c', + 'errno.c', + 'fork.c', + 'global.c', + 'pthread_attr_destroy.c', + 'pthread_attr_getdetachstate.c', + 'pthread_attr_getinheritsched.c', + 'pthread_attr_getschedparam.c', + 'pthread_attr_getschedpolicy.c', + 'pthread_attr_getscope.c', + 'pthread_attr_getstackaddr.c', + 'pthread_attr_getstacksize.c', + 'pthread_attr_init.c', + 'pthread_attr_setdetachstate.c', + 'pthread_attr_setinheritsched.c', + 'pthread_attr_setschedparam.c', + 'pthread_attr_setschedpolicy.c', + 'pthread_attr_setscope.c', + 'pthread_attr_setstackaddr.c', + 'pthread_attr_setstacksize.c', + 'pthread_barrierattr_destroy.c', + 'pthread_barrierattr_getpshared.c', + 'pthread_barrierattr_init.c', + 'pthread_barrierattr_setpshared.c', + 'pthread_barrier_destroy.c', + 'pthread_barrier_init.c', + 'pthread_barrier_wait.c', + 'pthread_cancel.c', + 'pthread_condattr_destroy.c', + 'pthread_condattr_getpshared.c', + 'pthread_condattr_init.c', + 'pthread_condattr_setpshared.c', + 'pthread_cond_destroy.c', + 'pthread_cond_init.c', + 'pthread_cond_signal.c', + 'pthread_cond_wait.c', + 'pthread_delay_np.c', + 'pthread_detach.c', + 'pthread_equal.c', + 'pthread_exit.c', + 'pthread_getconcurrency.c', + 'pthread_getschedparam.c', + 'pthread_getspecific.c', + 'pthread_getunique_np.c', + 'pthread_getw32threadhandle_np.c', + 'pthread_join.c', + 'pthread_key_create.c', + 'pthread_key_delete.c', + 'pthread_kill.c', + 'pthread_mutexattr_destroy.c', + 'pthread_mutexattr_getkind_np.c', + 'pthread_mutexattr_getpshared.c', + 'pthread_mutexattr_getrobust.c', + 'pthread_mutexattr_gettype.c', + 'pthread_mutexattr_init.c', + 'pthread_mutexattr_setkind_np.c', + 'pthread_mutexattr_setpshared.c', + 'pthread_mutexattr_setrobust.c', + 'pthread_mutexattr_settype.c', + 'pthread_mutex_consistent.c', + 'pthread_mutex_destroy.c', + 'pthread_mutex_init.c', + 'pthread_mutex_lock.c', + 'pthread_mutex_timedlock.c', + 'pthread_mutex_trylock.c', + 'pthread_mutex_unlock.c', + 'pthread_num_processors_np.c', + 'pthread_once.c', + 'pthread_rwlockattr_destroy.c', + 'pthread_rwlockattr_getpshared.c', + 'pthread_rwlockattr_init.c', + 'pthread_rwlockattr_setpshared.c', + 'pthread_rwlock_destroy.c', + 'pthread_rwlock_init.c', + 'pthread_rwlock_rdlock.c', + 'pthread_rwlock_timedrdlock.c', + 'pthread_rwlock_timedwrlock.c', + 'pthread_rwlock_tryrdlock.c', + 'pthread_rwlock_trywrlock.c', + 'pthread_rwlock_unlock.c', + 'pthread_rwlock_wrlock.c', + 'pthread_self.c', + 'pthread_setcancelstate.c', + 'pthread_setcanceltype.c', + 'pthread_setconcurrency.c', + 'pthread_setschedparam.c', + 'pthread_setspecific.c', + 'pthread_spin_destroy.c', + 'pthread_spin_init.c', + 'pthread_spin_lock.c', + 'pthread_spin_trylock.c', + 'pthread_spin_unlock.c', + 'pthread_testcancel.c', + 'pthread_timechange_handler_np.c', + 'pthread_win32_attach_detach_np.c', + 'ptw32_calloc.c', + 'ptw32_callUserDestroyRoutines.c', + 'ptw32_cond_check_need_init.c', + 'ptw32_getprocessors.c', + 'ptw32_is_attr.c', + 'ptw32_MCS_lock.c', + 'ptw32_mutex_check_need_init.c', + 'ptw32_new.c', + 'ptw32_processInitialize.c', + 'ptw32_processTerminate.c', + 'ptw32_relmillisecs.c', + 'ptw32_reuse.c', + 'ptw32_rwlock_cancelwrwait.c', + 'ptw32_rwlock_check_need_init.c', + 'ptw32_semwait.c', + 'ptw32_spinlock_check_need_init.c', + 'ptw32_threadDestroy.c', + 'ptw32_threadStart.c', + 'ptw32_throw.c', + 'ptw32_timespec.c', + 'ptw32_tkAssocCreate.c', + 'ptw32_tkAssocDestroy.c', + 'sched_getscheduler.c', + 'sched_get_priority_max.c', + 'sched_get_priority_min.c', + 'sched_setscheduler.c', + 'sched_yield.c', + 'sem_close.c', + 'sem_destroy.c', + 'sem_getvalue.c', + 'sem_init.c', + 'sem_open.c', + 'sem_post.c', + 'sem_post_multiple.c', + 'sem_timedwait.c', + 'sem_trywait.c', + 'sem_unlink.c', + 'sem_wait.c', + 'signal.c', + 'w32_CancelableWait.c', + ], + }] + ], + }, + ] +} + diff --git a/deps/uv/gyp_uv b/deps/uv/gyp_uv index 978fb906fac3..a7a9689c265b 100644 --- a/deps/uv/gyp_uv +++ b/deps/uv/gyp_uv @@ -5,7 +5,7 @@ import shlex import sys script_dir = os.path.dirname(__file__) -uv_root = os.path.abspath(script_dir) +uv_root = os.path.normpath(script_dir) sys.path.insert(0, os.path.join(uv_root, 'build', 'gyp', 'pylib')) import gyp @@ -14,7 +14,6 @@ import gyp # to be written. output_dir = os.path.join(os.path.abspath(uv_root), 'out') - def run_gyp(args): rc = gyp.main(args) if rc != 0: @@ -24,8 +23,23 @@ def run_gyp(args): if __name__ == '__main__': args = sys.argv[1:] - args.append(os.path.join(script_dir, 'all.gyp')) - args.append('-I' + os.path.join(script_dir, 'common.gypi')) + # GYP bug. + # On msvs it will crash if it gets an absolute path. + # On Mac/make it will crash if it doesn't get an absolute path. + if sys.platform == 'win32': + args.append(os.path.join(uv_root, 'uv.gyp')) + common_fn = os.path.join(uv_root, 'common.gypi') + options_fn = os.path.join(uv_root, 'options.gypi') + else: + args.append(os.path.join(os.path.abspath(uv_root), 'uv.gyp')) + common_fn = os.path.join(os.path.abspath(uv_root), 'common.gypi') + options_fn = os.path.join(os.path.abspath(uv_root), 'options.gypi') + + if os.path.exists(common_fn): + args.extend(['-I', common_fn]) + + if os.path.exists(options_fn): + args.extend(['-I', options_fn]) args.append('--depth=' + uv_root) @@ -38,5 +52,9 @@ if __name__ == '__main__': # Tell make to write its output into the same dir args.extend(['-Goutput_dir=' + output_dir]) + args.append('-Dtarget_arch=ia32') + args.append('-Dcomponent=static_library') + args.append('-Dlibrary=static_library') gyp_args = list(args) + print gyp_args run_gyp(gyp_args) diff --git a/deps/uv/all.gyp b/deps/uv/uv.gyp similarity index 90% rename from deps/uv/all.gyp rename to deps/uv/uv.gyp index b3036f56ef89..5a57371487e1 100644 --- a/deps/uv/all.gyp +++ b/deps/uv/uv.gyp @@ -1,48 +1,8 @@ { - 'target_defaults': { - 'default_configuration': 'Debug', - 'configurations': { - # TODO: hoist these out and put them somewhere common, because - # RuntimeLibrary MUST MATCH across the entire project - 'Debug': { - 'defines': [ 'DEBUG', '_DEBUG' ], - 'msvs_settings': { - 'VCCLCompilerTool': { - 'RuntimeLibrary': 1, # static debug - }, - }, - }, - 'Release': { - 'defines': [ 'NDEBUG' ], - 'msvs_settings': { - 'VCCLCompilerTool': { - 'RuntimeLibrary': 0, # static release - }, - }, - } - }, - 'msvs_settings': { - 'VCCLCompilerTool': { - }, - 'VCLibrarianTool': { - }, - 'VCLinkerTool': { - 'GenerateDebugInformation': 'true', - }, - }, - 'conditions': [ - ['OS == "win"', { - 'defines': [ - 'WIN32' - ], - }] - ], - }, - 'targets': [ { 'target_name': 'uv', - 'type': 'static_library', + 'type': '<(library)', 'include_dirs': [ 'include' ], 'direct_dependent_settings': { 'include_dirs': [ 'include' ], @@ -152,7 +112,12 @@ 'src/win/timer.c', 'src/win/util.c', 'src/win/winapi.c', - ] + ], + 'link_settings': { + 'libraries': [ + '-lws2_32.lib', + ], + }, }, { # Not Windows i.e. POSIX 'cflags': [ '-g', @@ -281,7 +246,12 @@ 'test/runner-unix.h', ] }] - ] + ], + 'msvs-settings': { + 'VCLinkerTool': { + 'SubSystem': 1, # /subsystem:console + }, + }, }, { @@ -319,7 +289,12 @@ 'test/runner-unix.h', ] }] - ] + ], + 'msvs-settings': { + 'VCLinkerTool': { + 'SubSystem': 1, # /subsystem:console + }, + }, } ] } diff --git a/deps/v8/tools/gyp/v8-node.gyp b/deps/v8/tools/gyp/v8-node.gyp new file mode 100644 index 000000000000..1ac36b0dfe2d --- /dev/null +++ b/deps/v8/tools/gyp/v8-node.gyp @@ -0,0 +1,6 @@ +{ + 'includes': [ + '../../build/common.gypi', + 'v8.gyp' + ], +} diff --git a/generate-projects.bat b/generate-projects.bat index 0dbea2b3d046..fc9270da4fa2 100644 --- a/generate-projects.bat +++ b/generate-projects.bat @@ -1,2 +1,3 @@ @echo off -python tools\gyp_node -f msvs -G msvs_version=2010 -D msvs_multi_core_compile=true +rem --debug variables --debug includes --debug general +python tools\gyp_node -f msvs -G msvs_version=2010 diff --git a/node.gyp b/node.gyp index 703b297a6a94..bd67d670d8fa 100644 --- a/node.gyp +++ b/node.gyp @@ -1,64 +1,4 @@ { - 'target_defaults': { - 'default_configuration': 'Debug', - 'configurations': { - # TODO: hoist these out and put them somewhere common, because - # RuntimeLibrary MUST MATCH across the entire project - 'Debug': { - 'defines': [ 'DEBUG', '_DEBUG' ], - 'msvs_settings': { - 'VCCLCompilerTool': { - 'RuntimeLibrary': 1, # static debug - 'Optimization': 0, # /Od, no optimization - }, - }, - }, - 'Release': { - 'defines': [ 'NDEBUG' ], - 'msvs_settings': { - 'VCCLCompilerTool': { - 'RuntimeLibrary': 0, # static release - 'Optimization': 3, # /Ox, full optimization - 'FavorSizeOrSpeed': 1, # /Ot, favour speed over size - 'InlineFunctionExpansion': 2, # /Ob2, inline anything eligible - 'WholeProgramOptimization': 'true', # /GL, whole program optimization, needed for LTCG - }, - 'VCLinkerTool': { - 'LinkTimeCodeGeneration': 1, # link-time code generation - }, - }, - } - }, - 'msvs_settings': { - 'VCCLCompilerTool': { - 'StringPooling': 'true', # pool string literals - 'DebugInformationFormat': 3, # Generate a PDB - 'AdditionalOptions': [ - '/MP', # compile across multiple CPUs, VC2008 setting - ], - 'MultiProcessorCompilation': 'true', # compile across multiple CPUs, VC2010 setting - }, - 'VCLibrarianTool': { - }, - 'VCLinkerTool': { - 'GenerateDebugInformation': 'true', - }, - }, - 'conditions': [ - ['OS == "win"', { - 'defines': [ - 'WIN32', - # we don't really want VC++ warning us about - # how dangerous C functions are... - '_CRT_SECURE_NO_DEPRECATE', - # ... or that C implementations shouldn't use - # POSIX names - '_CRT_NONSTDC_NO_DEPRECATE', - ], - }] - ], - }, - 'variables': { 'v8_use_snapshot': 'true', 'target_arch': 'ia32', @@ -73,8 +13,8 @@ 'dependencies': [ 'deps/http_parser/http_parser.gyp:http_parser', - 'deps/v8/tools/gyp/v8.gyp:v8', - 'deps/uv/all.gyp:uv', + 'deps/v8/tools/gyp/v8-node.gyp:v8', + 'deps/uv/uv.gyp:uv', 'node_js2c#host', ], @@ -126,7 +66,7 @@ [ 'OS=="win"', { 'dependencies': [ - 'deps/uv/deps/pthread-win32/build/all.gyp:pthread-win32', + 'deps/uv/deps/pthread-win32/pthread-win32.gyp:pthread-win32', ], # openssl is not built using gyp, and needs to be # built separately and placed outside the hierarchy. @@ -152,15 +92,6 @@ # we need to use node's preferred "win32" rather than gyp's preferred "win" 'PLATFORM="win32"', ], - 'libraries': [ - '-lws2_32.lib', - '-lwinmm.lib', - ], - 'msvs_settings': { - 'VCCLCompilerTool': { - 'WarningLevel': '3', - }, - }, },{ # POSIX 'defines': [ '__POSIX__' ], 'sources': [ @@ -178,7 +109,12 @@ 'sources': [ 'src/platform_darwin.cc' ], 'libraries': [ '-framework Carbon' ], }] - ] + ], + 'msvs-settings': { + 'VCLinkerTool': { + 'SubSystem': 1, # /subsystem:console + }, + }, }, { @@ -233,7 +169,6 @@ }, 'actions': [ - { 'action_name': 'node_js2c', @@ -268,7 +203,6 @@ ], }] ], - 'msvs_cygwin_shell': 0, }, ], }, # end node_js2c diff --git a/tools/common.gypi b/tools/common.gypi deleted file mode 100644 index e1ab09506ac5..000000000000 --- a/tools/common.gypi +++ /dev/null @@ -1,141 +0,0 @@ -{ - 'variables': { - 'library%': 'static_library', - 'component%': 'static_library', - 'visibility%': 'hidden', - 'variables': { - 'conditions': [ - [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', { - # This handles the Linux platforms we generally deal with. Anything - # else gets passed through, which probably won't work very well; such - # hosts should pass an explicit target_arch to gyp. - 'host_arch%': - '