From 7bd2e96ada69a407921eb900259190f363a6fcc2 Mon Sep 17 00:00:00 2001 From: JackBoosY Date: Tue, 21 May 2019 04:31:25 +0000 Subject: [z3]Fix install files path and add tools. --- ports/z3/CONTROL | 2 +- ports/z3/fix-install-path.patch | 116 ++++++++++++++++++++++++++++++++++++++++ ports/z3/portfile.cmake | 35 +++--------- 3 files changed, 125 insertions(+), 28 deletions(-) create mode 100644 ports/z3/fix-install-path.patch diff --git a/ports/z3/CONTROL b/ports/z3/CONTROL index f06d776bb..9a64766a9 100644 --- a/ports/z3/CONTROL +++ b/ports/z3/CONTROL @@ -1,3 +1,3 @@ Source: z3 -Version: 4.8.4 +Version: 4.8.4-1 Description: An SMT solver diff --git a/ports/z3/fix-install-path.patch b/ports/z3/fix-install-path.patch new file mode 100644 index 000000000..76912da62 --- /dev/null +++ b/ports/z3/fix-install-path.patch @@ -0,0 +1,116 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9877af8..10ef458 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -675,7 +675,7 @@ install(EXPORT + Z3_EXPORTED_TARGETS + FILE "Z3Targets.cmake" + NAMESPACE z3:: +- DESTINATION "${CMAKE_INSTALL_Z3_CMAKE_PACKAGE_DIR}" ++ DESTINATION share/z3 + ) + set(Z3_INSTALL_TREE_CMAKE_CONFIG_FILE "${CMAKE_BINARY_DIR}/cmake/Z3Config.cmake") + set(Z3_FIRST_PACKAGE_INCLUDE_DIR "${CMAKE_INSTALL_INCLUDEDIR}") +@@ -700,7 +700,7 @@ unset(CONFIG_FILE_TYPE) + # Add install rule to install ${Z3_INSTALL_TREE_CMAKE_CONFIG_FILE} + install( + FILES "${Z3_INSTALL_TREE_CMAKE_CONFIG_FILE}" +- DESTINATION "${CMAKE_INSTALL_Z3_CMAKE_PACKAGE_DIR}" ++ DESTINATION share/z3 + ) + + # TODO: Provide a `Z3Version.cmake` file so that clients can specify the version +diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt +index b097126..e127bef 100644 +--- a/doc/CMakeLists.txt ++++ b/doc/CMakeLists.txt +@@ -88,6 +88,6 @@ set(CMAKE_INSTALL_API_BINDINGS_DOC + if (INSTALL_API_BINDINGS_DOCUMENTATION) + install( + DIRECTORY "${DOC_DEST_DIR}" +- DESTINATION "${CMAKE_INSTALL_API_BINDINGS_DOC}" ++ DESTINATION share/z3 + ) + endif() +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index c497c19..0b0e081 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -173,7 +173,8 @@ install(TARGETS libz3 + EXPORT Z3_EXPORTED_TARGETS + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" # On Windows this installs ``libz3.lib`` which CMake calls the "corresponding import library". Do we want this installed? +- RUNTIME DESTINATION "${CMAKE_INSTALL_LIBDIR}" # For Windows. DLLs are runtime targets for CMake ++ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" # For Windows. DLLs are runtime targets for CMake ++ BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" # For MACOSX. + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + ) + +diff --git a/src/api/dotnet/CMakeLists.txt b/src/api/dotnet/CMakeLists.txt +index 20621e4..57bb3f0 100644 +--- a/src/api/dotnet/CMakeLists.txt ++++ b/src/api/dotnet/CMakeLists.txt +@@ -257,7 +257,7 @@ if (DOTNET_TOOLCHAIN_IS_MONO) + message(STATUS "Emitting install rules for .NET bindings") + # Install pkgconfig file for the assembly. This is needed by Monodevelop + # to find the assembly +- install(FILES "${Z3_DOTNET_PKGCONFIG_FILE}" DESTINATION "${CMAKE_INSTALL_PKGCONFIGDIR}") ++ install(FILES "${Z3_DOTNET_PKGCONFIG_FILE}" DESTINATION share/z3/pkgconfig) + + # Configure the install and uninstall scripts. + # Note: If multi-configuration generator support is ever fixed then these +@@ -266,7 +266,7 @@ if (DOTNET_TOOLCHAIN_IS_MONO) + configure_file(cmake_uninstall_gac.cmake.in cmake_uninstall_gac.cmake @ONLY) + + # Tell CMake to Invoke a script to install assembly to the GAC during install +- install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/cmake_install_gac.cmake") ++ install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/cmake_install_gac.cmake" DESTINATION share/z3) + + # Add custom target to uninstall the assembly from the GAC + add_custom_target(remove_dotnet_dll_from_gac +@@ -280,7 +280,7 @@ elseif(DOTNET_TOOLCHAIN_IS_WINDOWS) + # Don't install Z3_DOTNET_ASSEMBLY_DLL into the gac. Instead just copy into + # installation directory. + install(FILES "${Z3_DOTNET_ASSEMBLY_DLL}" DESTINATION "${CMAKE_INSTALL_LIBDIR}") +- install(FILES "${Z3_DOTNET_ASSEMBLY_DLL_DOC}" DESTINATION "${CMAKE_INSTALL_LIBDIR}") ++ install(FILES "${Z3_DOTNET_ASSEMBLY_DLL_DOC}" DESTINATION share/z3) + else() + message(FATAL_ERROR "Unknown .NET toolchain") + endif() +diff --git a/src/api/java/CMakeLists.txt b/src/api/java/CMakeLists.txt +index c2d73ff..506142c 100644 +--- a/src/api/java/CMakeLists.txt ++++ b/src/api/java/CMakeLists.txt +@@ -228,7 +228,7 @@ if (INSTALL_JAVA_BINDINGS) + PATH + "Directory to install Z3 Java JNI bridge library relative to install prefix" + ) +- install(TARGETS z3java DESTINATION "${Z3_JAVA_JNI_LIB_INSTALLDIR}") ++ install(TARGETS z3java DESTINATION share/z3) + # Note: Don't use ``DESTINATION`` here as the version of ``UseJava.cmake`` shipped + # with CMake 2.8.12.2 handles that incorrectly. + install_jar(z3JavaJar "${Z3_JAVA_JAR_INSTALLDIR}") +diff --git a/src/api/python/CMakeLists.txt b/src/api/python/CMakeLists.txt +index 6efdc15..e4d5be0 100644 +--- a/src/api/python/CMakeLists.txt ++++ b/src/api/python/CMakeLists.txt +@@ -136,7 +136,7 @@ if (INSTALL_PYTHON_BINDINGS) + # Using DESTDIR still seems to work even if we use an absolute path + message(STATUS "Python bindings will be installed to \"${CMAKE_INSTALL_PYTHON_PKG_DIR}\"") + install(FILES ${build_z3_python_bindings_target_depends} +- DESTINATION "${CMAKE_INSTALL_PYTHON_PKG_DIR}/z3" ++ DESTINATION share/z3 + ) + else() + message(STATUS "Not emitting rules to install Z3 python bindings") +diff --git a/src/shell/CMakeLists.txt b/src/shell/CMakeLists.txt +index 2782463..b6cd2f1 100644 +--- a/src/shell/CMakeLists.txt ++++ b/src/shell/CMakeLists.txt +@@ -44,5 +44,5 @@ target_link_libraries(shell PRIVATE ${Z3_DEPENDENT_LIBS}) + z3_add_component_dependencies_to_target(shell ${shell_expanded_deps}) + z3_append_linker_flag_list_to_target(shell ${Z3_DEPENDENT_EXTRA_CXX_LINK_FLAGS}) + install(TARGETS shell +- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ++ RUNTIME DESTINATION tools/z3 + ) diff --git a/ports/z3/portfile.cmake b/ports/z3/portfile.cmake index 46182793d..7014c2369 100644 --- a/ports/z3/portfile.cmake +++ b/ports/z3/portfile.cmake @@ -18,7 +18,9 @@ vcpkg_from_github( REF z3-4.8.4 SHA512 4660ba6ab33a6345b2e8396c332d4afcfc73eda66ceb2595a39f152df4d62a9ea0f349b0f9212389ba84ecba6bdae6ad9b62b376ba44dc4d9c74f80d7a818bf4 HEAD_REF master - PATCHES fix_cmake_long_dir.patch + PATCHES + fix_cmake_long_dir.patch + fix-install-path.patch ) if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") @@ -32,32 +34,11 @@ vcpkg_configure_cmake( ${BUILD_STATIC} ) -vcpkg_build_cmake() +vcpkg_install_cmake() +vcpkg_copy_pdbs() - -function(install_z3 SHORT_BUILDTYPE DEBUG_DIR) - set(LIBS ".so" ".lib" ".dylib" ".a") - set(DLLS ".dll" ".pdb") - file(GLOB FILES ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${SHORT_BUILDTYPE}/libz3.*) - - foreach (FILE in ${FILES}) - get_filename_component(FILEXT ${FILE} EXT) - if ("${FILEXT}" IN_LIST LIBS) - file(INSTALL ${FILE} DESTINATION ${CURRENT_PACKAGES_DIR}${DEBUG_DIR}/lib) - elseif ("${FILEXT}" IN_LIST DLLS) - file(INSTALL ${FILE} DESTINATION ${CURRENT_PACKAGES_DIR}${DEBUG_DIR}/bin) - endif() - endforeach() -endfunction() - -if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - install_z3("dbg" "/debug") -endif() -if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - install_z3("rel" "") -endif() - -file(GLOB HEADERS ${SOURCE_PATH}/src/api/z3*.h) -file(INSTALL ${HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${CURRENT_PACKAGES_DIR}/debug/share/z3/Z3Targets-debug.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/z3) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/z3 RENAME copyright) -- cgit v1.2.3