aboutsummaryrefslogtreecommitdiff
path: root/ports
diff options
context:
space:
mode:
authorJackBoosY <47264268+JackBoosY@users.noreply.github.com>2019-10-30 14:23:36 +0800
committerVictor Romero <romerosanchezv@gmail.com>2019-10-29 23:23:36 -0700
commit934275b7125e89caeaeff167d567574bf41e8264 (patch)
treee377b3ebcdb4dcd4840c2145a9d11d2f75fda4d1 /ports
parent5222ad308f624b64c3eb2c9b1cb056b4257f12df (diff)
downloadvcpkg-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/CONTROL4
-rw-r--r--ports/libxslt/portfile.cmake229
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()