2012-12-20 12 views
10

Yerel bir düğüm modülü yazıyorum ve sürüm ve hata ayıklama sürümlerinde bunu oluşturmak istiyorum.gyp - bağlantı kitaplığı aroması belirtme

Düğüm modülü, iki farklı dizinde bir hata ayıklama ve yayın sürümüne sahip başka bir kitaplığa bağlanır.

Şimdi burada sıkıştığım yer var - geçerli yapılandırma için kütüphane dizinini nasıl belirleyebilirim?

Ben configurations.debug.link_settings anahtarında ama hata alıyorum olduğunu ayarlama denedim: 'link_settings

cevap

14

binding.gyp hedefin bulunan, ayıklama yapılandırmasında izin verilmez Anlaşılan bu mümkün değildir platformlar arası bir yol. Bu yüzden umarım bu size birkaç saat deneme yapacak.

Bu, Mac ve Windows için eklentiyi oluşturan bir gyp dosyasıdır.

//This example assumes you have an external library 'thelibrary', located in 
//./external/thelibrary 
//With the two flavors, debug and release in lib/debug and lib/release 
{ 
    "targets": [ 
     { 
      "target_name": "addon", 
      "sources": [ 
       "src/addon.cpp", 
       "src/expose_the_library.cpp" 
      ], 
      "include_dirs": [ 
       "external/thelibrary/include" 
      ], 
      "cflags!": [ 
       "-fno-exceptions" 
      ], 
      "cflags_cc!": [ 
       "-fno-exceptions" 
      ], 
      "conditions": [ 
       [ 
        "OS=='mac'", 
        { 
         "defines": [ 
          "__MACOSX_CORE__" 
         ], 
         "architecture": "i386", 
         "xcode_settings": { 
          "GCC_ENABLE_CPP_EXCEPTIONS": "YES" 
         }, 
         "link_settings": { 
          "libraries": [ 
           "-lthelibrary", 
           "-framework", 
           "IOBluetooth" //this is how you use a framework on OSX 
          ], 
          "configurations": { 
           "Debug": { 
            "xcode_settings": { 
             "OTHER_LDFLAGS": [ 
              "-Lexternal/thelibrary/lib/debug" 
             ] 
            } 
           }, 
           "Release": { 
            "xcode_settings": { 
             "OTHER_LDFLAGS": [ 
              "-Lexternal/thelibrary/lib/release" 
             ] 
            } 
           } 
          } 
         } 
        } 
       ], 
       [ 
        "OS=='win'", 
        { 
         "link_settings": { 
          "libraries": [ 
           "-lthelibrary.lib", 
          ] 
         }, 
         "configurations": { 
          "Debug": { 
           "msvs_settings": { 
            "VCCLCompilerTool": { 
             "ExceptionHandling": "0", 
             "AdditionalOptions": [ 
              "/MP /EHsc" 
             ] 
            }, 
            "VCLibrarianTool": { 
             "AdditionalOptions": [ 
              "/LTCG" 
             ] 
            }, 
            "VCLinkerTool": { 
             "LinkTimeCodeGeneration": 1, 
             "LinkIncremental": 1, 
             "AdditionalLibraryDirectories": [ 
              "../external/thelibrary/lib/debug" 
             ] 
            } 
           } 
          }, 
          "Release": { 
           "msvs_settings": { 
            "VCCLCompilerTool": { 
             "RuntimeLibrary": 0, 
             "Optimization": 3, 
             "FavorSizeOrSpeed": 1, 
             "InlineFunctionExpansion": 2, 
             "WholeProgramOptimization": "true", 
             "OmitFramePointers": "true", 
             "EnableFunctionLevelLinking": "true", 
             "EnableIntrinsicFunctions": "true", 
             "RuntimeTypeInfo": "false", 
             "ExceptionHandling": "0", 
             "AdditionalOptions": [ 
              "/MP /EHsc" 
             ] 
            }, 
            "VCLibrarianTool": { 
             "AdditionalOptions": [ 
              "/LTCG" 
             ] 
            }, 
            "VCLinkerTool": { 
             "LinkTimeCodeGeneration": 1, 
             "OptimizeReferences": 2, 
             "EnableCOMDATFolding": 2, 
             "LinkIncremental": 1, 
             "AdditionalLibraryDirectories": [ 
              "../external/thelibrary/lib/release" 
             ] 
            } 
           } 
          } 
         } 
        } 
       ] 
      ] 
     } 
    ] 
} 
+0

Bir gcc version :( – OrangeDog

+0

isimler [MSVSSettings.py] kullanmak doğru ayarları bulmak için Ek (https://code.google.com/p/gyp/source/browse/trunk/pylib/ gerek gyp/MSVSSettings.py ar = 904 431.) – Karl2011