Rename gyp files to produce useful solution names.
authorPeter Bright <drpizza@quiscalusmexicanus.org>
Sat, 13 Aug 2011 18:17:47 +0000 (19:17 +0100)
committerRyan Dahl <ry@tinyclouds.org>
Sun, 14 Aug 2011 02:57:42 +0000 (19:57 -0700)
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.

13 files changed:
common.gypi [new file with mode: 0644]
deps/http_parser/http_parser.gyp
deps/uv/common.gypi
deps/uv/deps/pthread-win32/build/all.gyp [deleted file]
deps/uv/deps/pthread-win32/pthread-win32.gyp [new file with mode: 0644]
deps/uv/gyp_uv
deps/uv/uv.gyp [moved from deps/uv/all.gyp with 90% similarity]
deps/v8/tools/gyp/v8-node.gyp [new file with mode: 0644]
generate-projects.bat
node.gyp
tools/common.gypi [deleted file]
tools/gyp/pylib/gyp/input.py
tools/gyp_node

diff --git a/common.gypi b/common.gypi
new file mode 100644 (file)
index 0000000..745f749
--- /dev/null
@@ -0,0 +1,164 @@
+{\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
index c6eada7..bd45122 100644 (file)
@@ -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',
index 440519f..840d3a7 100644 (file)
 {
-  '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 (file)
index 24bf648..0000000
+++ /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 (file)
index 0000000..2c4c652
--- /dev/null
@@ -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',
+          ],
+        }]
+      ],
+    },
+  ]
+}
+
index 978fb90..a7a9689 100644 (file)
@@ -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)
similarity index 90%
rename from deps/uv/all.gyp
rename to deps/uv/uv.gyp
index b3036f5..5a57371 100644 (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': [
     {
       '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
+        },
+      },
     }
   ]
 }
diff --git a/deps/v8/tools/gyp/v8-node.gyp b/deps/v8/tools/gyp/v8-node.gyp
new file mode 100644 (file)
index 0000000..1ac36b0
--- /dev/null
@@ -0,0 +1,6 @@
+{\r
+  'includes': [\r
+    '../../build/common.gypi',\r
+    'v8.gyp'\r
+  ],\r
+}\r
index 0dbea2b..fc9270d 100644 (file)
@@ -1,2 +1,3 @@
 @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
index 703b297..bd67d67 100644 (file)
--- 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',
       ],
 
 
         [ '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
diff --git a/tools/common.gypi b/tools/common.gypi
deleted file mode 100644 (file)
index e1ab095..0000000
+++ /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%':
-            '<!(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 314b5c6..8a44d4e 100644 (file)
@@ -413,7 +413,7 @@ def LoadTargetBuildFile(build_file_path, data, aux_data, variables, includes,
         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']
index d783b1d..07da2ee 100755 (executable)
@@ -28,17 +28,27 @@ if __name__ == '__main__':
   # 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])