diff options
| author | JackBoosY <47264268+JackBoosY@users.noreply.github.com> | 2019-10-30 14:23:36 +0800 |
|---|---|---|
| committer | Victor Romero <romerosanchezv@gmail.com> | 2019-10-29 23:23:36 -0700 |
| commit | 934275b7125e89caeaeff167d567574bf41e8264 (patch) | |
| tree | e377b3ebcdb4dcd4840c2145a9d11d2f75fda4d1 /ports | |
| parent | 5222ad308f624b64c3eb2c9b1cb056b4257f12df (diff) | |
| download | vcpkg-934275b7125e89caeaeff167d567574bf41e8264.tar.gz vcpkg-934275b7125e89caeaeff167d567574bf41e8264.zip | |
[libxslt]Using vcpkg_install_nmake in Windows, support unix. (#8589)
* [libxslt]Using vcpkg_install_nmake in Windows, support unix.
* support PRERUN_SHELL/PRERUN_SHELL_DEBUG/PRERUN_SHELL_RELEASE
* Re-trigger CI.
Diffstat (limited to 'ports')
| -rw-r--r-- | ports/libxslt/CONTROL | 4 | ||||
| -rw-r--r-- | ports/libxslt/portfile.cmake | 229 |
2 files changed, 110 insertions, 123 deletions
diff --git a/ports/libxslt/CONTROL b/ports/libxslt/CONTROL index 4c02d9154..8f5d4de53 100644 --- a/ports/libxslt/CONTROL +++ b/ports/libxslt/CONTROL @@ -1,5 +1,5 @@ Source: libxslt -Version: 1.1.33-2 -Homepage: http://xmlsoft.org/XSLT/ +Version: 1.1.33-4 +Homepage: https://github.com/GNOME/libxslt Description: Libxslt is a XSLT library implemented in C for XSLT 1.0 and most of EXSLT Build-Depends: libxml2, liblzma diff --git a/ports/libxslt/portfile.cmake b/ports/libxslt/portfile.cmake index 6b5851e72..68dc53654 100644 --- a/ports/libxslt/portfile.cmake +++ b/ports/libxslt/portfile.cmake @@ -11,114 +11,115 @@ vcpkg_from_github( 0002-Fix-lzma.patch ) -find_program(NMAKE nmake) - -set(SCRIPTS_DIR ${SOURCE_PATH}/win32) - -set(CONFIGURE_COMMAND_TEMPLATE cscript configure.js - cruntime=@CRUNTIME@ - debug=@DEBUGMODE@ - prefix=@INSTALL_DIR@ - include=@INCLUDE_DIR@ - lib=@LIB_DIR@ - bindir=$(PREFIX)\\tools\\ - sodir=$(PREFIX)\\bin\\ -) - -# Create some directories ourselves, because the makefile doesn't -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) - -# -# Release -# - -message(STATUS "Configuring ${TARGET_TRIPLET}-rel") - -if(VCPKG_CRT_LINKAGE STREQUAL dynamic) - set(CRUNTIME /MD) -else() - set(CRUNTIME /MT) -endif() -set(DEBUGMODE no) -set(LIB_DIR ${CURRENT_INSTALLED_DIR}/lib) -set(INCLUDE_DIR ${CURRENT_INSTALLED_DIR}/include) -set(INSTALL_DIR ${CURRENT_PACKAGES_DIR}) -file(TO_NATIVE_PATH "${LIB_DIR}" LIB_DIR) -file(TO_NATIVE_PATH "${INCLUDE_DIR}" INCLUDE_DIR) -file(TO_NATIVE_PATH "${INSTALL_DIR}" INSTALL_DIR) -string(CONFIGURE "${CONFIGURE_COMMAND_TEMPLATE}" CONFIGURE_COMMAND) -vcpkg_execute_required_process( - COMMAND ${CONFIGURE_COMMAND} - WORKING_DIRECTORY ${SCRIPTS_DIR} - LOGNAME config-${TARGET_TRIPLET}-rel -) -# Handle build output directory -file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" OUTDIR) -file(MAKE_DIRECTORY "${OUTDIR}") -message(STATUS "Configuring ${TARGET_TRIPLET}-rel done") - -message(STATUS "Building ${TARGET_TRIPLET}-rel") -vcpkg_execute_required_process( - COMMAND ${NMAKE} /f Makefile.msvc rebuild OUTDIR=${OUTDIR} - WORKING_DIRECTORY ${SCRIPTS_DIR} - LOGNAME build-${TARGET_TRIPLET}-rel -) -message(STATUS "Building ${TARGET_TRIPLET}-rel done") - -message(STATUS "Installing ${TARGET_TRIPLET}-rel") -vcpkg_execute_required_process( - COMMAND ${NMAKE} /f Makefile.msvc install OUTDIR=${OUTDIR} - WORKING_DIRECTORY ${SCRIPTS_DIR} - LOGNAME install-${TARGET_TRIPLET}-rel -) -message(STATUS "Installing ${TARGET_TRIPLET}-rel done") - - -# -# Debug -# - -message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") - -if(VCPKG_CRT_LINKAGE STREQUAL dynamic) - set(CRUNTIME /MDd) +if (VCPKG_TARGET_IS_WINDOWS) + # Create some directories ourselves, because the makefile doesn't + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) + set(CONFIGURE_COMMAND_TEMPLATE + cruntime=@CRUNTIME@ + debug=@DEBUGMODE@ + prefix=@INSTALL_DIR@ + include=@INCLUDE_DIR@ + lib=@LIB_DIR@ + bindir=$(PREFIX)\\tools\\ + sodir=$(PREFIX)\\bin\\ + ) + # Debug params + if(VCPKG_CRT_LINKAGE STREQUAL dynamic) + set(CRUNTIME /MD) + else() + set(CRUNTIME /MT) + endif() + set(DEBUGMODE no) + set(LIB_DIR ${CURRENT_INSTALLED_DIR}/lib) + set(INCLUDE_DIR ${CURRENT_INSTALLED_DIR}/include) + set(INSTALL_DIR ${CURRENT_PACKAGES_DIR}) + file(TO_NATIVE_PATH "${LIB_DIR}" LIB_DIR) + file(TO_NATIVE_PATH "${INCLUDE_DIR}" INCLUDE_DIR) + file(TO_NATIVE_PATH "${INSTALL_DIR}" INSTALL_DIR) + string(CONFIGURE "${CONFIGURE_COMMAND_TEMPLATE}" CONFIGURE_COMMAND_REL) + # Release params + if(VCPKG_CRT_LINKAGE STREQUAL dynamic) + set(CRUNTIME /MDd) + else() + set(CRUNTIME /MTd) + endif() + set(DEBUGMODE yes) + set(LIB_DIR ${CURRENT_INSTALLED_DIR}/debug/lib) + set(INSTALL_DIR ${CURRENT_PACKAGES_DIR}/debug) + file(TO_NATIVE_PATH "${LIB_DIR}" LIB_DIR) + file(TO_NATIVE_PATH "${INSTALL_DIR}" INSTALL_DIR) + string(CONFIGURE "${CONFIGURE_COMMAND_TEMPLATE}" CONFIGURE_COMMAND_DBG) + + vcpkg_install_nmake( + SOURCE_PATH ${SOURCE_PATH} + PROJECT_SUBPATH win32 + PROJECT_NAME Makefile.msvc + PRERUN_SHELL_DEBUG cscript configure.js ${CONFIGURE_COMMAND_DBG} + PRERUN_SHELL_RELEASE cscript configure.js ${CONFIGURE_COMMAND_REL} + OPTIONS rebuild + ) + + # The makefile builds both static and dynamic libraries, so remove the ones we don't want + if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/libxslt_a${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX} ${CURRENT_PACKAGES_DIR}/lib/libexslt_a${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/libxslt_a${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX} ${CURRENT_PACKAGES_DIR}/debug/lib/libexslt_a${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}) + else() + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/libxslt${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX} ${CURRENT_PACKAGES_DIR}/lib/libexslt${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/libxslt${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX} ${CURRENT_PACKAGES_DIR}/debug/lib/libexslt${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) + # Rename the libs to match the dynamic lib names + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libxslt_a${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX} ${CURRENT_PACKAGES_DIR}/lib/libxslt${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libexslt_a${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX} ${CURRENT_PACKAGES_DIR}/lib/libexslt${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libxslt_a${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX} ${CURRENT_PACKAGES_DIR}/debug/lib/libxslt${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libexslt_a${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX} ${CURRENT_PACKAGES_DIR}/debug/lib/libexslt${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}) + endif() else() - set(CRUNTIME /MTd) + vcpkg_find_acquire_program(PYTHON2) + get_filename_component(PYTHON2_DIR ${PYTHON2} DIRECTORY) + + find_library(LibXml2_DEBUG_LIBRARIES libxml2 PATHS ${CURRENT_INSTALLED_DIR}/debug/lib REQUIRED) + find_library(LibXml2_RELEASE_LIBRARIES libxml2 PATHS ${CURRENT_INSTALLED_DIR}/lib REQUIRED) + + vcpkg_configure_make( + SOURCE_PATH ${SOURCE_PATH} + AUTOCONFIG + OPTIONS + --with-crypto + --with-plugins + --with-libxml-include-prefix=${CURRENT_INSTALLED_DIR}/include + --with-python=${PYTHON2_DIR} + OPTIONS_DEBUG + --with-mem-debug + --with-debug + --with-debugger + --with-libxml-libs-prefix="${CURRENT_INSTALLED_DIR}/debug/lib -lxml2 -lz -llzmad" + --with-html-dir=${CURRENT_INSTALLED_DIR}/debug/tools + --with-html-subdir=${CURRENT_INSTALLED_DIR}/debug/tools + OPTIONS_RELEASE + --with-libxml-libs-prefix="${CURRENT_INSTALLED_DIR}/lib -lxml2 -lz -llzma" + --with-html-dir=${CURRENT_INSTALLED_DIR}/tools + --with-html-subdir=${CURRENT_INSTALLED_DIR}/tools + ) + + vcpkg_install_make() + + if (EXISTS ${CURRENT_PACKAGES_DIR}/bin/xslt-config) + file(COPY ${CURRENT_PACKAGES_DIR}/bin/xslt-config DESTINATION ${CURRENT_PACKAGES_DIR}/tools) + file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/xslt-config) + endif() + if (EXISTS ${CURRENT_PACKAGES_DIR}/bin/xsltproc) + file(COPY ${CURRENT_PACKAGES_DIR}/bin/xsltproc DESTINATION ${CURRENT_PACKAGES_DIR}/tools) + file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/xslt-config) + endif() + if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + file(COPY ${CURRENT_PACKAGES_DIR}/lib/libxslt.so ${CURRENT_PACKAGES_DIR}/bin/) + else() + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/libxslt-plugins ${CURRENT_PACKAGES_DIR}/debug/lib/libxslt-plugins) + endif() + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/libxslt.so) endif() -set(DEBUGMODE yes) -set(LIB_DIR ${CURRENT_INSTALLED_DIR}/debug/lib) -set(INSTALL_DIR ${CURRENT_PACKAGES_DIR}/debug) -file(TO_NATIVE_PATH "${LIB_DIR}" LIB_DIR) -file(TO_NATIVE_PATH "${INSTALL_DIR}" INSTALL_DIR) -string(CONFIGURE "${CONFIGURE_COMMAND_TEMPLATE}" CONFIGURE_COMMAND) - -vcpkg_execute_required_process( - COMMAND ${CONFIGURE_COMMAND} - WORKING_DIRECTORY ${SCRIPTS_DIR} - LOGNAME config-${TARGET_TRIPLET}-dbg -) -# Handle build output directory -file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" OUTDIR) -file(MAKE_DIRECTORY "${OUTDIR}") -message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done") - -message(STATUS "Building ${TARGET_TRIPLET}-dbg") -vcpkg_execute_required_process( - COMMAND ${NMAKE} /f Makefile.msvc rebuild OUTDIR=${OUTDIR} - WORKING_DIRECTORY ${SCRIPTS_DIR} - LOGNAME build-${TARGET_TRIPLET}-dbg -) -message(STATUS "Building ${TARGET_TRIPLET}-dbg done") - -message(STATUS "Installing ${TARGET_TRIPLET}-dbg") -vcpkg_execute_required_process( - COMMAND ${NMAKE} /f Makefile.msvc install OUTDIR=${OUTDIR} - WORKING_DIRECTORY ${SCRIPTS_DIR} - LOGNAME install-${TARGET_TRIPLET}-dbg -) -message(STATUS "Installing ${TARGET_TRIPLET}-dbg done") - # # Cleanup # @@ -144,21 +145,7 @@ file(WRITE ${CURRENT_PACKAGES_DIR}/include/libexslt/exsltexports.h "${EXSLTEXPOR file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - -# The makefile builds both static and dynamic libraries, so remove the ones we don't want -if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/libxslt_a.lib ${CURRENT_PACKAGES_DIR}/lib/libexslt_a.lib) - file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/libxslt_a.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libexslt_a.lib) -else() - file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/libxslt.lib ${CURRENT_PACKAGES_DIR}/lib/libexslt.lib) - file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/libxslt.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libexslt.lib) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) - # Rename the libs to match the dynamic lib names - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libxslt_a.lib ${CURRENT_PACKAGES_DIR}/lib/libxslt.lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libexslt_a.lib ${CURRENT_PACKAGES_DIR}/lib/libexslt.lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libxslt_a.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libxslt.lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libexslt_a.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libexslt.lib) -endif() +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) vcpkg_copy_pdbs() |
