• Show log

    Commit

  • Hash : 1093e2de
    Author : Sascha Cunz
    Date : 2012-05-11T04:25:23

    Specifiy dllimport to MSVC if we're not building libgit2.dll
    
    Building a "shared object" (DLL) in Windows includes 2 steps:
    
    - specify __declspec(dllexport)
      when building the library itself. MSVC will disallow itself from
      optimizing these symbols out and reference them in the PE's
      Exports-Table.
      Further, a static link library will be generated. This library
      contains the symbols which are exported via the declsepc above.
      The __declspec(dllexport) becomes part of the symbol-signature
      (like parameter types in C++ are 'mangled' into the symbol name,
      the export specifier is mingled with the name)
    
    - specify __declspec(dllimport)
      when using the library. This again mingles the declspec into the
      name and declares the function / variable with external linkage.
    
    cmake automatically adds -Dgit2_EXPORTS to the compiler arguments
    when compiling the libgit2 project.
    The 'git2' is the name specified via PROJECT() in CMakeLists.txt.