mirror of
https://github.com/Z3Prover/z3
synced 2025-04-06 17:44:08 +00:00
* CMake: simplify FindGMP.cmake Remove printing of all the different variables, and let FPHSA output the library name. Add an imported target, which bundles the library and the include directories for easier usage. * fix build: vector::c_ptr() now is vector::data() * CMake: use Threads::Threads imported module Otherwise the setting of THREADS_PREFER_PTHREAD_FLAG has no effect. * CMake: remove needless policy setting The minimum required version is CMake 3.4, where these policies are already set to new because they were introduced earlier. * CMake: remove needless variable expansion
35 lines
1.3 KiB
CMake
35 lines
1.3 KiB
CMake
find_package(Dotnet REQUIRED)
|
|
|
|
if(TARGET_ARCHITECTURE STREQUAL "i686")
|
|
set(Z3_DOTNET_PLATFORM "x86")
|
|
else()
|
|
set(Z3_DOTNET_PLATFORM "AnyCPU")
|
|
endif()
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/dotnet.csproj dotnet.csproj COPYONLY)
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Program.cs Program.cs COPYONLY)
|
|
|
|
ADD_DOTNET(${CMAKE_CURRENT_BINARY_DIR}/dotnet.csproj
|
|
PLATFORM ${Z3_DOTNET_PLATFORM}
|
|
NETCOREAPP
|
|
CUSTOM_BUILDPROPS "<Z3_VERSION>${Z3_VERSION_MAJOR}.${Z3_VERSION_MINOR}.${Z3_VERSION_PATCH}</Z3_VERSION>"
|
|
DEPENDS Microsoft.Z3)
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
set(z3_dotnet_native_lib ${PROJECT_BINARY_DIR}/libz3.so)
|
|
set(z3_dotnet_test_manual_copy_deps
|
|
${PROJECT_BINARY_DIR}/Microsoft.Z3/netstandard2.0/Microsoft.Z3.dll
|
|
${z3_dotnet_native_lib}
|
|
)
|
|
|
|
add_custom_target(
|
|
z3_dotnet_test_manual_copy_assembly_hack ALL
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${z3_dotnet_test_manual_copy_deps} ${PROJECT_BINARY_DIR}/dotnet/netcoreapp2.0/
|
|
# hack the libz3 entry in deps so it's easy enough for dotnet to reach it...
|
|
COMMAND sed \"s/runtimes\\/.*libz3\\.so/libz3.so/\" -i ${PROJECT_BINARY_DIR}/dotnet/netcoreapp2.0/dotnet.deps.json
|
|
)
|
|
|
|
add_dependencies(z3_dotnet_test_manual_copy_assembly_hack BUILD_dotnet)
|
|
endif()
|
|
|