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.
This commit is contained in:
Peter Bright 2011-08-13 19:17:47 +01:00 committed by Ryan Dahl
parent a5d90c435c
commit 16788f461a
13 changed files with 564 additions and 533 deletions

164
common.gypi Normal file
View File

@ -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']},
}],
],
},
}],
],
},
}

View File

@ -5,69 +5,24 @@
# ./gyp/gyp -f make --depth=`pwd` http_parser.gyp # ./gyp/gyp -f make --depth=`pwd` http_parser.gyp
# ./out/Debug/test # ./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': [ 'targets': [
{ {
'target_name': 'http_parser', 'target_name': 'http_parser',
'type': 'static_library', 'type': '<(library)',
'include_dirs': [ '.' ], 'include_dirs': [ '.' ],
'direct_dependent_settings': { 'direct_dependent_settings': {
'include_dirs': [ '.' ], 'include_dirs': [ '.' ],
}, },
'defines': [ 'HTTP_PARSER_STRICT=0' ], 'defines': [ 'HTTP_PARSER_STRICT=0' ],
'sources': [ './http_parser.c', ], 'sources': [ './http_parser.c', ],
'conditions': [
['OS=="win"', {
'msvs_settings': { 'msvs_settings': {
'VCCLCompilerTool': { 'VCCLCompilerTool': {
# Compile as C++. http_parser.c is actually C99, but C++ is # Compile as C++. http_parser.c is actually C99, but C++ is
# close enough in this case. # close enough in this case.
'CompileAs': 2, 'CompileAs': 2, # compile as C++
}, },
}, },
}]
],
}, },
{ {
'target_name': 'test', 'target_name': 'test',
'type': 'executable', 'type': 'executable',

159
deps/uv/common.gypi vendored
View File

@ -1,13 +1,164 @@
{ {
'conditions': [ 'variables': {
['OS=="win"', { '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': { 'target_defaults': {
'default_configuration': 'Debug',
'configurations': {
'Debug': {
'defines': [ 'DEBUG', '_DEBUG' ],
'cflags': [ '-g', '-O0' ],
'msvs_settings': { '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': { 'VCLinkerTool': {
'GenerateDebugInformation': 'true', 'GenerateDebugInformation': 'true',
'RandomizedBaseAddress': 2, # enable ASLR
'DataExecutionPrevention': 2, # enable DEP
'AllowIsolation': 'true',
'SuppressStartupBanner': 'true',
}, },
}, },
}, 'conditions': [
}], # OS=="win" ['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']},
}],
],
},
}],
],
},
} }

View File

@ -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',
],
},
]
}

View File

@ -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',
],
}]
],
},
]
}

26
deps/uv/gyp_uv vendored
View File

@ -5,7 +5,7 @@ import shlex
import sys import sys
script_dir = os.path.dirname(__file__) 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')) sys.path.insert(0, os.path.join(uv_root, 'build', 'gyp', 'pylib'))
import gyp import gyp
@ -14,7 +14,6 @@ import gyp
# to be written. # to be written.
output_dir = os.path.join(os.path.abspath(uv_root), 'out') output_dir = os.path.join(os.path.abspath(uv_root), 'out')
def run_gyp(args): def run_gyp(args):
rc = gyp.main(args) rc = gyp.main(args)
if rc != 0: if rc != 0:
@ -24,8 +23,23 @@ def run_gyp(args):
if __name__ == '__main__': if __name__ == '__main__':
args = sys.argv[1:] args = sys.argv[1:]
args.append(os.path.join(script_dir, 'all.gyp')) # GYP bug.
args.append('-I' + os.path.join(script_dir, 'common.gypi')) # 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) args.append('--depth=' + uv_root)
@ -38,5 +52,9 @@ if __name__ == '__main__':
# Tell make to write its output into the same dir # Tell make to write its output into the same dir
args.extend(['-Goutput_dir=' + output_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) gyp_args = list(args)
print gyp_args
run_gyp(gyp_args) run_gyp(gyp_args)

View File

@ -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': [ 'targets': [
{ {
'target_name': 'uv', 'target_name': 'uv',
'type': 'static_library', 'type': '<(library)',
'include_dirs': [ 'include' ], 'include_dirs': [ 'include' ],
'direct_dependent_settings': { 'direct_dependent_settings': {
'include_dirs': [ 'include' ], 'include_dirs': [ 'include' ],
@ -152,7 +112,12 @@
'src/win/timer.c', 'src/win/timer.c',
'src/win/util.c', 'src/win/util.c',
'src/win/winapi.c', 'src/win/winapi.c',
] ],
'link_settings': {
'libraries': [
'-lws2_32.lib',
],
},
}, { # Not Windows i.e. POSIX }, { # Not Windows i.e. POSIX
'cflags': [ 'cflags': [
'-g', '-g',
@ -281,7 +246,12 @@
'test/runner-unix.h', 'test/runner-unix.h',
] ]
}] }]
] ],
'msvs-settings': {
'VCLinkerTool': {
'SubSystem': 1, # /subsystem:console
},
},
}, },
{ {
@ -319,7 +289,12 @@
'test/runner-unix.h', 'test/runner-unix.h',
] ]
}] }]
] ],
'msvs-settings': {
'VCLinkerTool': {
'SubSystem': 1, # /subsystem:console
},
},
} }
] ]
} }

6
deps/v8/tools/gyp/v8-node.gyp vendored Normal file
View File

@ -0,0 +1,6 @@
{
'includes': [
'../../build/common.gypi',
'v8.gyp'
],
}

View File

@ -1,2 +1,3 @@
@echo off @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

View File

@ -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': { 'variables': {
'v8_use_snapshot': 'true', 'v8_use_snapshot': 'true',
'target_arch': 'ia32', 'target_arch': 'ia32',
@ -73,8 +13,8 @@
'dependencies': [ 'dependencies': [
'deps/http_parser/http_parser.gyp:http_parser', 'deps/http_parser/http_parser.gyp:http_parser',
'deps/v8/tools/gyp/v8.gyp:v8', 'deps/v8/tools/gyp/v8-node.gyp:v8',
'deps/uv/all.gyp:uv', 'deps/uv/uv.gyp:uv',
'node_js2c#host', 'node_js2c#host',
], ],
@ -126,7 +66,7 @@
[ 'OS=="win"', { [ 'OS=="win"', {
'dependencies': [ '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 # openssl is not built using gyp, and needs to be
# built separately and placed outside the hierarchy. # 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" # we need to use node's preferred "win32" rather than gyp's preferred "win"
'PLATFORM="win32"', 'PLATFORM="win32"',
], ],
'libraries': [
'-lws2_32.lib',
'-lwinmm.lib',
],
'msvs_settings': {
'VCCLCompilerTool': {
'WarningLevel': '3',
},
},
},{ # POSIX },{ # POSIX
'defines': [ '__POSIX__' ], 'defines': [ '__POSIX__' ],
'sources': [ 'sources': [
@ -178,7 +109,12 @@
'sources': [ 'src/platform_darwin.cc' ], 'sources': [ 'src/platform_darwin.cc' ],
'libraries': [ '-framework Carbon' ], 'libraries': [ '-framework Carbon' ],
}] }]
] ],
'msvs-settings': {
'VCLinkerTool': {
'SubSystem': 1, # /subsystem:console
},
},
}, },
{ {
@ -233,7 +169,6 @@
}, },
'actions': [ 'actions': [
{ {
'action_name': 'node_js2c', 'action_name': 'node_js2c',
@ -268,7 +203,6 @@
], ],
}] }]
], ],
'msvs_cygwin_shell': 0,
}, },
], ],
}, # end node_js2c }, # end node_js2c

View File

@ -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%':
'<!(uname -m | sed -e "s/i.86/ia32/;s/x86_64/x64/;s/amd64/x64/;s/arm.*/arm/")',
}, { # OS!="linux" and OS!="freebsd" and OS!="openbsd"
'host_arch%': 'ia32',
}],
],
},
'host_arch%': '<(host_arch)',
'target_arch%': '<(host_arch)',
'v8_target_arch%': '<(target_arch)',
},
'target_defaults': {
'default_configuration': 'Debug',
'configurations': {
'Debug': {
'cflags': [ '-g', '-O0' ],
'defines': [ '_DEBUG', 'DEBUG' ],
},
'Release': {
'cflags': [ '-O3', '-fomit-frame-pointer', '-fdata-sections', '-ffunction-sections' ],
},
},
},
'conditions': [
[ '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=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"'
['OS=="win"', {
'target_defaults': {
'defines': [
'WIN32',
'_CRT_SECURE_NO_DEPRECATE',
'_CRT_NONSTDC_NO_DEPRECATE',
],
'conditions': [
['component=="static_library"', {
'defines': [
'_HAS_EXCEPTIONS=0',
],
}],
],
'msvs_disabled_warnings': [4355, 4800],
'msvs_settings': {
'VCCLCompilerTool': {
'MinimalRebuild': 'false',
'BufferSecurityCheck': 'true',
'EnableFunctionLevelLinking': 'true',
'RuntimeTypeInfo': 'false',
'WarningLevel': '3',
'WarnAsError': 'true',
'DebugInformationFormat': '3',
'Detect64BitPortabilityProblems': 'false',
'conditions': [
[ 'msvs_multi_core_compile', {
'AdditionalOptions': ['/MP'],
}],
['component=="shared_library"', {
'ExceptionHandling': '1', # /EHsc
}, {
'ExceptionHandling': '0',
}],
],
},
'VCLibrarianTool': {
'AdditionalOptions': ['/ignore:4221'],
},
'VCLinkerTool': {
'AdditionalDependencies': [
],
'GenerateDebugInformation': 'true',
},
},
},
}], # OS=="win"
['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']},
}],
], # target_conditions
}, # target_defaults
}], # OS=="mac"
],
}

View File

@ -413,7 +413,7 @@ def LoadTargetBuildFile(build_file_path, data, aux_data, variables, includes,
index = index + 1 index = index + 1
else: else:
raise Exception, \ raise Exception, \
"Unable to find targets in build file %s" % build_file_path "Unable to find targets in build file %s" % os.path.abspath(build_file_path)
# No longer needed. # No longer needed.
del build_file_data['target_defaults'] del build_file_data['target_defaults']

View File

@ -28,17 +28,27 @@ if __name__ == '__main__':
# On Mac/make it will crash if it doesn't get an absolute path. # On Mac/make it will crash if it doesn't get an absolute path.
if sys.platform == 'win32': if sys.platform == 'win32':
args.append(os.path.join(node_root, 'node.gyp')) args.append(os.path.join(node_root, 'node.gyp'))
common_fn = os.path.join(node_root, 'common.gypi')
options_fn = os.path.join(node_root, 'options.gypi') options_fn = os.path.join(node_root, 'options.gypi')
else: else:
args.append(os.path.join(os.path.abspath(node_root), 'node.gyp')) args.append(os.path.join(os.path.abspath(node_root), 'node.gyp'))
common_fn = os.path.join(os.path.abspath(node_root), 'common.gypi')
options_fn = os.path.join(os.path.abspath(node_root), 'options.gypi') options_fn = os.path.join(os.path.abspath(node_root), 'options.gypi')
if os.path.exists(common_fn):
args.extend(['-I', common_fn])
if os.path.exists(options_fn): if os.path.exists(options_fn):
args.extend(['-I', options_fn]) args.extend(['-I', options_fn])
args.append('--depth=' + node_root) args.append('--depth=' + node_root)
# There's a bug with windows which doesn't allow this feature.
if sys.platform != 'win32': if sys.platform != 'win32':
# Tell gyp to write the Makefiles into output_dir
args.extend(['--generator-output', output_dir])
# Tell make to write its output into the same dir # Tell make to write its output into the same dir
args.extend(['-Goutput_dir=' + output_dir]) args.extend(['-Goutput_dir=' + output_dir])