30 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| # test if CSharp application correctly links
 | |
| # to managed C++ binary
 | |
| cmake_minimum_required(VERSION 3.9)
 | |
| project (CSharpLinkToCxx CXX CSharp)
 | |
| 
 | |
| # 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})
 | |
| 
 | |
| add_library(CLIApp SHARED cli.hpp cli.cpp)
 | |
| 
 | |
| target_compile_options(CLIApp PRIVATE "/clr")
 | |
| 
 | |
| add_executable(CSharpLinkToCxx csharp.cs)
 | |
| 
 | |
| target_link_libraries(CSharpLinkToCxx CLIApp)
 | |
| 
 | |
| # this unmanaged C++ library will be added to the C#/.NET
 | |
| # references of CSharpLinkToCxx but it will show a warning
 | |
| # because it is unmanaged
 | |
| add_library(CppNativeApp SHARED cpp_native.hpp cpp_native.cpp)
 | |
| target_link_libraries(CSharpLinkToCxx CppNativeApp)
 | |
| 
 | |
| # Link a static C++ library into the CSharp executable.
 | |
| # We do not actually use any symbols but this helps cover
 | |
| # link language selection.
 | |
| add_library(CppStaticLib STATIC cpp_static.cpp)
 | |
| target_link_libraries(CSharpLinkToCxx CppStaticLib)
 |