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.
--- /dev/null
+{\r
+ 'variables': {\r
+ 'target_arch%': 'ia32', # set v8's target architecture\r
+ 'host_arch%': 'ia32', # set v8's host architecture\r
+ 'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds\r
+ 'component%': 'static_library', # NB. these names match with what V8 expects\r
+ 'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way\r
+ },\r
+\r
+ 'target_defaults': {\r
+ 'default_configuration': 'Debug',\r
+ 'configurations': {\r
+ 'Debug': {\r
+ 'defines': [ 'DEBUG', '_DEBUG' ],\r
+ 'cflags': [ '-g', '-O0' ],\r
+ 'msvs_settings': {\r
+ 'VCCLCompilerTool': {\r
+ 'target_conditions': [\r
+ ['library=="static_library"', {\r
+ 'RuntimeLibrary': 1, # static debug\r
+ }, {\r
+ 'RuntimeLibrary': 3, # DLL debug\r
+ }],\r
+ ],\r
+ 'Optimization': 0, # /Od, no optimization\r
+ 'MinimalRebuild': 'true',\r
+ 'OmitFramePointers': 'false',\r
+ 'BasicRuntimeChecks': 3, # /RTC1\r
+ },\r
+ 'VCLinkerTool': {\r
+ 'LinkIncremental': 2, # enable incremental linking\r
+ },\r
+ },\r
+ },\r
+ 'Release': {\r
+ 'defines': [ 'NDEBUG' ],\r
+ 'cflags': [ '-O3', '-fomit-frame-pointer', '-fdata-sections', '-ffunction-sections' ],\r
+ 'msvs_settings': {\r
+ 'VCCLCompilerTool': {\r
+ 'target_conditions': [\r
+ ['library=="static_library"', {\r
+ 'RuntimeLibrary': 0, # static release\r
+ }, {\r
+ 'RuntimeLibrary': 2, # debug release\r
+ }],\r
+ ],\r
+ 'Optimization': 3, # /Ox, full optimization\r
+ 'FavorSizeOrSpeed': 1, # /Ot, favour speed over size\r
+ 'InlineFunctionExpansion': 2, # /Ob2, inline anything eligible\r
+ 'WholeProgramOptimization': 'true', # /GL, whole program optimization, needed for LTCG\r
+ 'OmitFramePointers': 'true',\r
+ 'EnableFunctionLevelLinking': 'true',\r
+ 'EnableIntrinsicFunctions': 'true',\r
+ 'AdditionalOptions': [\r
+ '/MP', # compile across multiple CPUs\r
+ ],\r
+ },\r
+ 'VCLibrarianTool': {\r
+ 'AdditionalOptions': [\r
+ '/LTCG', # link time code generation\r
+ ],\r
+ },\r
+ 'VCLinkerTool': {\r
+ 'LinkTimeCodeGeneration': 1, # link-time code generation\r
+ 'OptimizeReferences': 2, # /OPT:REF\r
+ 'EnableCOMDATFolding': 2, # /OPT:ICF\r
+ 'LinkIncremental': 1, # disable incremental linking\r
+ },\r
+ },\r
+ }\r
+ },\r
+ 'msvs_settings': {\r
+ 'VCCLCompilerTool': {\r
+ 'StringPooling': 'true', # pool string literals\r
+ 'DebugInformationFormat': 3, # Generate a PDB\r
+ 'WarningLevel': 3,\r
+ 'BufferSecurityCheck': 'true',\r
+ 'ExceptionHandling': 1, # /EHsc\r
+ 'SuppressStartupBanner': 'true',\r
+ 'WarnAsError': 'false',\r
+ },\r
+ 'VCLibrarianTool': {\r
+ },\r
+ 'VCLinkerTool': {\r
+ 'GenerateDebugInformation': 'true',\r
+ 'RandomizedBaseAddress': 2, # enable ASLR\r
+ 'DataExecutionPrevention': 2, # enable DEP\r
+ 'AllowIsolation': 'true',\r
+ 'SuppressStartupBanner': 'true',\r
+ },\r
+ },\r
+ 'conditions': [\r
+ ['OS == "win"', {\r
+ 'msvs_cygwin_shell': 0, # prevent actions from trying to use cygwin\r
+ 'defines': [\r
+ 'WIN32',\r
+ # we don't really want VC++ warning us about\r
+ # how dangerous C functions are...\r
+ '_CRT_SECURE_NO_DEPRECATE',\r
+ # ... or that C implementations shouldn't use\r
+ # POSIX names\r
+ '_CRT_NONSTDC_NO_DEPRECATE',\r
+ ],\r
+ }],\r
+ [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', {\r
+ 'target_defaults': {\r
+ 'cflags': [ '-Wall', '-pthread', '-fno-rtti', '-fno-exceptions' ],\r
+ 'ldflags': [ '-pthread', ],\r
+ 'conditions': [\r
+ [ 'target_arch=="ia32"', {\r
+ 'cflags': [ '-m32' ],\r
+ 'ldflags': [ '-m32' ],\r
+ }],\r
+ [ 'OS=="linux"', {\r
+ 'cflags': [ '-ansi' ],\r
+ }],\r
+ [ 'visibility=="hidden"', {\r
+ 'cflags': [ '-fvisibility=hidden' ],\r
+ }],\r
+ ],\r
+ },\r
+ }],\r
+ ['OS=="mac"', {\r
+ 'target_defaults': {\r
+ 'xcode_settings': {\r
+ 'ALWAYS_SEARCH_USER_PATHS': 'NO',\r
+ 'GCC_C_LANGUAGE_STANDARD': 'ansi', # -ansi\r
+ 'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks\r
+ 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic\r
+ # (Equivalent to -fPIC)\r
+ 'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', # -fno-exceptions\r
+ 'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti\r
+ 'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings\r
+ # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden\r
+ 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES',\r
+ 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden\r
+ 'GCC_THREADSAFE_STATICS': 'NO', # -fno-threadsafe-statics\r
+ 'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES', # -Werror\r
+ 'GCC_VERSION': '4.2',\r
+ 'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES', # -Wnewline-eof\r
+ 'MACOSX_DEPLOYMENT_TARGET': '10.4', # -mmacosx-version-min=10.4\r
+ 'PREBINDING': 'NO', # No -Wl,-prebind\r
+ 'USE_HEADERMAP': 'NO',\r
+ 'OTHER_CFLAGS': [\r
+ '-fno-strict-aliasing',\r
+ ],\r
+ 'WARNING_CFLAGS': [\r
+ '-Wall',\r
+ '-Wendif-labels',\r
+ '-W',\r
+ '-Wno-unused-parameter',\r
+ '-Wnon-virtual-dtor',\r
+ ],\r
+ },\r
+ 'target_conditions': [\r
+ ['_type!="static_library"', {\r
+ 'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']},\r
+ }],\r
+ ],\r
+ },\r
+ }],\r
+ ],\r
+ },\r
+}\r
# ./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',
{
- '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']},
+ }],
+ ],
+ },
+ }],
+ ],
+ },
+}
+++ /dev/null
-{
- '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',
- ],
- },
- ]
-}
-
--- /dev/null
+{
+ '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',
+ ],
+ }]
+ ],
+ },
+ ]
+}
+
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
# 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:
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)
# 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)
{
- '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' ],
'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',
'test/runner-unix.h',
]
}]
- ]
+ ],
+ 'msvs-settings': {
+ 'VCLinkerTool': {
+ 'SubSystem': 1, # /subsystem:console
+ },
+ },
},
{
'test/runner-unix.h',
]
}]
- ]
+ ],
+ 'msvs-settings': {
+ 'VCLinkerTool': {
+ 'SubSystem': 1, # /subsystem:console
+ },
+ },
}
]
}
--- /dev/null
+{\r
+ 'includes': [\r
+ '../../build/common.gypi',\r
+ 'v8.gyp'\r
+ ],\r
+}\r
@echo off\r
-python tools\gyp_node -f msvs -G msvs_version=2010 -D msvs_multi_core_compile=true\r
+rem --debug variables --debug includes --debug general\r
+python tools\gyp_node -f msvs -G msvs_version=2010\r
{
- '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',
'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',
],
[ '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.
# 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': [
'sources': [ 'src/platform_darwin.cc' ],
'libraries': [ '-framework Carbon' ],
}]
- ]
+ ],
+ 'msvs-settings': {
+ 'VCLinkerTool': {
+ 'SubSystem': 1, # /subsystem:console
+ },
+ },
},
{
},
'actions': [
-
{
'action_name': 'node_js2c',
],
}]
],
- 'msvs_cygwin_shell': 0,
},
],
}, # end node_js2c
+++ /dev/null
-{
- '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"
- ],
-}
index = index + 1
else:
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.
del build_file_data['target_defaults']
# On Mac/make it will crash if it doesn't get an absolute path.
if sys.platform == 'win32':
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')
else:
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')
+ 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=' + node_root)
+ # There's a bug with windows which doesn't allow this feature.
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
args.extend(['-Goutput_dir=' + output_dir])