diff options
| author | JackBoosY <47264268+JackBoosY@users.noreply.github.com> | 2019-10-05 22:51:07 +0800 |
|---|---|---|
| committer | Curtis J Bezault <curtbezault@gmail.com> | 2019-10-05 07:51:07 -0700 |
| commit | ad493fd8600c13f75dabcad60e6bd8d644f83c6b (patch) | |
| tree | 5ab2aef7c42141bc4b0fb36d155fe178e4cb6742 /ports/freexl | |
| parent | 47c6b3f557f305969bb271d10ad4b0b0d936ad23 (diff) | |
| download | vcpkg-ad493fd8600c13f75dabcad60e6bd8d644f83c6b.tar.gz vcpkg-ad493fd8600c13f75dabcad60e6bd8d644f83c6b.zip | |
Add function vcpkg_configure_make/vcpkg_build_make/vcpkg_install_make/vcpkg_build_nmake/vcpkg_install_nmake (#8267)
* Add function vcpkg_configure_make/vcpkg_build_make.
* Fix autoreconf command and add log.
* Add vcpkg_install_make.
* Fix call function name.
* support non-debug mode.
* Add nmake support.
* [tcl]Add new port for testing.
* [vcpkg_configure_make]Fix prefix in linux.
* restart CI systen.
* Separate vcpkg_build_nmake/vcpkg_install_nmake. Add arg PROJECT_NAME.
* fix copy source file. add samples.
* Remove uncommon options.
Add force install para to autoreconf.
* fix build error.
* fix options judgment.
* enable nmake in windows.
* fix some envs and macros. Disable NMAKE in vcpkg_configure_make currently.
* update docs.
* fix environments.
* Modify libosip2 to use vcpkg_configure_make/vcpkg_install_make.
* [tcl]Tcl separates PR.
* trigger PR-EAGER.
* [freexl]Fix options name and remove option NMAKE.
* use tool-chain instead of set environments manually.
* fix autoreconf para.
* use vcpkg_execute_build_process instead.
Diffstat (limited to 'ports/freexl')
| -rw-r--r-- | ports/freexl/CONTROL | 2 | ||||
| -rw-r--r-- | ports/freexl/portfile.cmake | 230 |
2 files changed, 71 insertions, 161 deletions
diff --git a/ports/freexl/CONTROL b/ports/freexl/CONTROL index dc4ec446a..d0348a33a 100644 --- a/ports/freexl/CONTROL +++ b/ports/freexl/CONTROL @@ -1,5 +1,5 @@ Source: freexl -Version: 1.0.4-2 +Version: 1.0.4-5 Homepage: https://www.gaia-gis.it/gaia-sins/freexl-sources Description: FreeXL is an open source library to extract valid data from within an Excel (.xls) spreadsheet Build-Depends: libiconv diff --git a/ports/freexl/portfile.cmake b/ports/freexl/portfile.cmake index e770d61f1..b606b651a 100644 --- a/ports/freexl/portfile.cmake +++ b/ports/freexl/portfile.cmake @@ -1,177 +1,87 @@ include(vcpkg_common_functions) set(FREEXL_VERSION_STR "1.0.4") -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/freexl-${FREEXL_VERSION_STR}) + vcpkg_download_distfile(ARCHIVE URLS "http://www.gaia-gis.it/gaia-sins/freexl-sources/freexl-${FREEXL_VERSION_STR}.tar.gz" FILENAME "freexl-${FREEXL_VERSION_STR}.tar.gz" SHA512 d72561f7b82e0281cb211fbf249e5e45411a7cdd009cfb58da3696f0a0341ea7df210883bfde794be28738486aeb4ffc67ec2c98fd2acde5280e246e204ce788 ) -if (CMAKE_HOST_WIN32) - vcpkg_extract_source_archive(${ARCHIVE}) - vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/fix-makefiles.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-sources.patch - ) - find_program(NMAKE nmake) - - set(LIBS_ALL_DBG - "\"${CURRENT_INSTALLED_DIR}/debug/lib/libiconv.lib\" \ - \"${CURRENT_INSTALLED_DIR}/debug/lib/libcharset.lib\"" +if (VCPKG_TARGET_IS_WINDOWS) + vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH + PATCHES + fix-makefiles.patch + fix-sources.patch ) - set(LIBS_ALL_REL - "\"${CURRENT_INSTALLED_DIR}/lib/libiconv.lib\" \ - \"${CURRENT_INSTALLED_DIR}/lib/libcharset.lib\"" - ) - - - if(VCPKG_CRT_LINKAGE STREQUAL dynamic) - set(CL_FLAGS_DBG "/MDd /Zi") - set(CL_FLAGS_REL "/MD /Ox") - else() - set(CL_FLAGS_DBG "/MTd /Zi") - set(CL_FLAGS_REL "/MT /Ox") - endif() - - - ################ - # Debug build - ################ - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - message(STATUS "Building ${TARGET_TRIPLET}-dbg") - - file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/debug" INST_DIR_DBG) - vcpkg_execute_required_process( - COMMAND ${NMAKE} -f makefile.vc clean install - INST_DIR="${INST_DIR_DBG}" INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" "LINK_FLAGS=/debug" "CL_FLAGS=${CL_FLAGS_DBG}" "LIBS_ALL=${LIBS_ALL_DBG}" - WORKING_DIRECTORY ${SOURCE_PATH} - LOGNAME nmake-build-${TARGET_TRIPLET}-debug + + set(LIBS_ALL_DBG + "\"${CURRENT_INSTALLED_DIR}/debug/lib/libiconv.lib\" \ + \"${CURRENT_INSTALLED_DIR}/debug/lib/libcharset.lib\"" ) - message(STATUS "Building ${TARGET_TRIPLET}-dbg done") - vcpkg_copy_pdbs() - endif() - - ################ - # Release build - ################ - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - message(STATUS "Building ${TARGET_TRIPLET}-rel") - - file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR_REL) - vcpkg_execute_required_process( - COMMAND ${NMAKE} -f makefile.vc clean install - INST_DIR="${INST_DIR_REL}" INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" "LINK_FLAGS=" "CL_FLAGS=${CL_FLAGS_REL}" "LIBS_ALL=${LIBS_ALL_REL}" - WORKING_DIRECTORY ${SOURCE_PATH} - LOGNAME nmake-build-${TARGET_TRIPLET}-release + set(LIBS_ALL_REL + "\"${CURRENT_INSTALLED_DIR}/lib/libiconv.lib\" \ + \"${CURRENT_INSTALLED_DIR}/lib/libcharset.lib\"" ) - message(STATUS "Building ${TARGET_TRIPLET}-rel done") - endif() - - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/freexl RENAME copyright) - - if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) - file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/freexl_i.lib) - file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/freexl_i.lib) - else() - file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/freexl.lib) - file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/freexl.lib) - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/freexl_i.lib ${CURRENT_PACKAGES_DIR}/lib/freexl.lib) - endif() - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/freexl_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/freexl.lib) + + vcpkg_install_nmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS_DEBUG + INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}/debug" + INST_DIR="${CURRENT_PACKAGES_DIR}/debug" + "LINK_FLAGS=/debug" + "LIBS_ALL=${LIBS_ALL_DBG}" + OPTIONS_RELEASE + INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" + INST_DIR="${CURRENT_PACKAGES_DIR}" + "LINK_FLAGS=" + "LIBS_ALL=${LIBS_ALL_REL}" + + ) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/freexl RENAME copyright) + + if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/freexl_i.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/freexl_i.lib) + else() + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/freexl.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/freexl.lib) + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/freexl_i.lib ${CURRENT_PACKAGES_DIR}/lib/freexl.lib) + endif() + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/freexl_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/freexl.lib) + endif() endif() - endif() elseif (CMAKE_HOST_UNIX OR CMAKE_HOST_APPLE) # Build in UNIX - # Check build system first - find_program(MAKE make) - if (NOT MAKE) - message(FATAL_ERROR "MAKE not found") - endif() - - # CI error logs appear to indicate that it doesn't like ./configure in the same source dir - # so extract the source into separate debug/release source directories - set(SOURCE_ROOT_DEBUG ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-debug) - set(SOURCE_ROOT_RELEASE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-release) - set(SOURCE_PATH_DEBUG ${SOURCE_ROOT_DEBUG}/freexl-${FREEXL_VERSION_STR}) - set(SOURCE_PATH_RELEASE ${SOURCE_ROOT_RELEASE}/freexl-${FREEXL_VERSION_STR}) - - file(REMOVE_RECURSE ${SOURCE_ROOT_DEBUG}) - file(REMOVE_RECURSE ${SOURCE_ROOT_RELEASE}) - - vcpkg_extract_source_archive(${ARCHIVE} ${SOURCE_ROOT_DEBUG}) - vcpkg_extract_source_archive(${ARCHIVE} ${SOURCE_ROOT_RELEASE}) - - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - ################ - # Release build - ################ - message(STATUS "Configuring ${TARGET_TRIPLET}-rel") - set(OUT_PATH_RELEASE ${SOURCE_PATH_RELEASE}/../../make-build-${TARGET_TRIPLET}-release) - file(MAKE_DIRECTORY ${OUT_PATH_RELEASE}) - vcpkg_execute_required_process( - COMMAND "${SOURCE_PATH_RELEASE}/configure" --prefix=${OUT_PATH_RELEASE} "${FREEXL_CONFIGURE_ARGS_REL}" - WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} - LOGNAME config-${TARGET_TRIPLET}-rel - ) - - message(STATUS "Building ${TARGET_TRIPLET}-rel") - vcpkg_execute_required_process( - COMMAND make - WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} - LOGNAME make-build-${TARGET_TRIPLET}-release - ) - - message(STATUS "Installing ${TARGET_TRIPLET}-rel") - vcpkg_execute_required_process( - COMMAND make install - WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} - LOGNAME make-install-${TARGET_TRIPLET}-release - ) - - file(COPY ${OUT_PATH_RELEASE}/lib DESTINATION ${CURRENT_PACKAGES_DIR}) - file(COPY ${OUT_PATH_RELEASE}/include DESTINATION ${CURRENT_PACKAGES_DIR}) - file(COPY ${SOURCE_PATH_RELEASE}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/freexl) - file(RENAME ${CURRENT_PACKAGES_DIR}/share/freexl/COPYING ${CURRENT_PACKAGES_DIR}/share/freexl/copyright) - message(STATUS "Installing ${TARGET_TRIPLET}-rel done") - endif() - - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - ################ - # Debug build - ################ - message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") - set(OUT_PATH_DEBUG ${SOURCE_PATH_DEBUG}/../../make-build-${TARGET_TRIPLET}-debug) - file(MAKE_DIRECTORY ${OUT_PATH_DEBUG}) - vcpkg_execute_required_process( - COMMAND "${SOURCE_PATH_DEBUG}/configure" --prefix=${OUT_PATH_DEBUG} "${FREEXL_CONFIGURE_ARGS_DBG}" - WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} - LOGNAME config-${TARGET_TRIPLET}-debug - ) - - message(STATUS "Building ${TARGET_TRIPLET}-dbg") - vcpkg_execute_required_process( - COMMAND make - WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} - LOGNAME make-build-${TARGET_TRIPLET}-debug - ) - - message(STATUS "Installing ${TARGET_TRIPLET}-dbg") - vcpkg_execute_required_process( - COMMAND make install - WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} - LOGNAME make-install-${TARGET_TRIPLET}-debug - ) - - file(COPY ${OUT_PATH_DEBUG}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug) - message(STATUS "Installing ${TARGET_TRIPLET}-dbg done") - endif() + vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH + ) + + vcpkg_configure_make( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS_DEBUG + INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" + "LINK_FLAGS=/debug" + "CL_FLAGS=${CL_FLAGS_DBG}" + "LIBS_ALL=${LIBS_ALL_DBG}" + OPTIONS_RELEASE + INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" + "LINK_FLAGS=" + "CL_FLAGS=${CL_FLAGS_REL}" + "LIBS_ALL=${LIBS_ALL_REL}" + ) + + vcpkg_install_make() + + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/freexl RENAME copyright) else()# Other build system message(FATAL_ERROR "Unsupported build system.") |
