ImportLib.cmake 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. enable_language(CXX CSharp)
  2. if(NOT DEFINED exportFileName OR
  3. NOT DEFINED exportNameSpace OR
  4. NOT DEFINED exportTargetName)
  5. message(FATAL_ERROR "export information missing")
  6. endif()
  7. add_library(${exportTargetName}CSharp SHARED
  8. ImportLib.cs)
  9. # native c++ dll
  10. add_library(${exportTargetName}Native SHARED
  11. ImportLibNative.h
  12. ImportLibNative.cxx)
  13. # mixed c++ dll
  14. add_library(${exportTargetName}Mixed SHARED
  15. ImportLibMixed.cxx
  16. ImportLibMixedNative.h
  17. ImportLibMixedNative.cxx)
  18. set_target_properties(${exportTargetName}Mixed PROPERTIES
  19. COMMON_LANGUAGE_RUNTIME "")
  20. # pure c++ dll
  21. add_library(${exportTargetName}Pure SHARED
  22. ImportLibPure.cxx)
  23. set_target_properties(${exportTargetName}Pure PROPERTIES
  24. COMMON_LANGUAGE_RUNTIME "pure")
  25. # safe c++ dll
  26. add_library(${exportTargetName}Safe SHARED
  27. ImportLibSafe.cxx)
  28. set_target_properties(${exportTargetName}Safe PROPERTIES
  29. COMMON_LANGUAGE_RUNTIME "safe")
  30. # generate export file
  31. export(TARGETS
  32. ${exportTargetName}CSharp
  33. ${exportTargetName}Native
  34. ${exportTargetName}Mixed
  35. ${exportTargetName}Pure
  36. ${exportTargetName}Safe
  37. NAMESPACE "${exportNameSpace}:"
  38. FILE "${exportFileName}")