| 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}") |