You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
847 B
20 lines
847 B
# Take a C# shared library and link it to a managed C++ shared library
|
|
cmake_minimum_required(VERSION 3.10)
|
|
project (CSharpLinkFromCxx CXX CSharp)
|
|
|
|
add_library(CSharpLibrary SHARED UsefulCSharpClass.cs)
|
|
|
|
# we have to change the default flags for the
|
|
# managed C++ project to build
|
|
string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
|
string(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
|
|
|
|
# The C# project is a dependency of the C++/CLI project
|
|
add_library(ManagedCppLibrary SHARED UsefulManagedCppClass.cpp UsefulManagedCppClass.hpp)
|
|
target_compile_options(ManagedCppLibrary PRIVATE "/clr")
|
|
target_link_libraries(ManagedCppLibrary PUBLIC CSharpLibrary)
|
|
|
|
# Main executable for the test framework
|
|
add_executable(CSharpLinkFromCxx CSharpLinkFromCxx.cs)
|
|
target_link_libraries(CSharpLinkFromCxx PRIVATE ManagedCppLibrary)
|