| enable_language(CXX CSharp) |
| |
| if(NOT DEFINED exportFileName OR |
| NOT DEFINED exportNameSpace OR |
| NOT DEFINED exportTargetName) |
| message(FATAL_ERROR "export information missing") |
| endif() |
| |
| add_library(${exportTargetName}CSharp SHARED |
| ImportLib.cs) |
| |
| # native c++ dll |
| add_library(${exportTargetName}Native SHARED |
| ImportLibNative.h |
| ImportLibNative.cxx) |
| |
| # mixed c++ dll |
| add_library(${exportTargetName}Mixed SHARED |
| ImportLibMixed.cxx |
| ImportLibMixedNative.h |
| ImportLibMixedNative.cxx) |
| set_target_properties(${exportTargetName}Mixed PROPERTIES |
| COMMON_LANGUAGE_RUNTIME "") |
| |
| # pure c++ dll |
| add_library(${exportTargetName}Pure SHARED |
| ImportLibPure.cxx) |
| set_target_properties(${exportTargetName}Pure PROPERTIES |
| COMMON_LANGUAGE_RUNTIME "pure") |
| |
| # safe c++ dll |
| add_library(${exportTargetName}Safe SHARED |
| ImportLibSafe.cxx) |
| set_target_properties(${exportTargetName}Safe PROPERTIES |
| COMMON_LANGUAGE_RUNTIME "safe") |
| |
| # generate export file |
| export(TARGETS |
| ${exportTargetName}CSharp |
| ${exportTargetName}Native |
| ${exportTargetName}Mixed |
| ${exportTargetName}Pure |
| ${exportTargetName}Safe |
| NAMESPACE "${exportNameSpace}:" |
| FILE "${exportFileName}") |