aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Kostenko <isanych@gmail.com>2019-07-30 00:11:43 +0100
committerVictor Romero <romerosanchezv@gmail.com>2019-07-29 16:11:43 -0700
commitb4ed400ee087c71741fe82c4d7a75ee02a82012c (patch)
treeae9c34049b36c4cf87adbbc26709240cbc7de382
parent1f910f0fe57328377cc8294da6076bbdd3445f5b (diff)
downloadvcpkg-b4ed400ee087c71741fe82c4d7a75ee02a82012c.tar.gz
vcpkg-b4ed400ee087c71741fe82c4d7a75ee02a82012c.zip
[xalan-c] linux support (#7126)
-rw-r--r--ports/xalan-c/portfile.cmake97
1 files changed, 74 insertions, 23 deletions
diff --git a/ports/xalan-c/portfile.cmake b/ports/xalan-c/portfile.cmake
index 52e8b34fa..114a9a2b8 100644
--- a/ports/xalan-c/portfile.cmake
+++ b/ports/xalan-c/portfile.cmake
@@ -46,36 +46,87 @@ vcpkg_extract_source_archive_ex(
)
if (VCPKG_TARGET_ARCHITECTURE MATCHES "x86")
+ set(BITS 32)
elseif (VCPKG_TARGET_ARCHITECTURE MATCHES "x64")
+ set(BITS 64)
else()
message(FATAL_ERROR "Unsupported architecture: ${VCPKG_TARGET_ARCHITECTURE}")
endif()
-set(ENV{CL} "$ENV{CL} \"/I${CURRENT_INSTALLED_DIR}/include\"")
-set(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/debug/bin")
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ list(APPEND BUILD_TYPES "release")
+ endif()
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ list(APPEND BUILD_TYPES "debug")
+ endif()
-vcpkg_install_msbuild(
- SOURCE_PATH ${SOURCE_PATH}
- PROJECT_SUBPATH c/projects/Win32/VC10/AllInOne/AllInOne.vcxproj
- OPTIONS_RELEASE /p:XERCESCROOT=${CURRENT_INSTALLED_DIR}
- OPTIONS_DEBUG /p:XERCESCROOT=${CURRENT_INSTALLED_DIR}/debug
- LICENSE_SUBPATH c/LICENSE
- SKIP_CLEAN
-)
+ set(XALANCROOT ${SOURCE_PATH}/c)
+ set(ENV{XALANCROOT} ${XALANCROOT})
+ foreach(BUILD_TYPE IN LISTS BUILD_TYPES)
+ if(BUILD_TYPE STREQUAL "release")
+ set(P ${CURRENT_PACKAGES_DIR})
+ set(SHORT rel)
+ set(OPTS)
+ set(ENV{XERCESCROOT} ${CURRENT_INSTALLED_DIR})
+ else()
+ set(P ${CURRENT_PACKAGES_DIR}/debug)
+ set(SHORT dbg)
+ set(OPTS -d -z -I${CURRENT_INSTALLED_DIR}/include)
+ set(ENV{XERCESCROOT} ${CURRENT_INSTALLED_DIR}/debug)
+ endif()
+ set(DIR ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${SHORT})
+ file(REMOVE_RECURSE ${DIR})
+ file(MAKE_DIRECTORY ${DIR})
+ message(STATUS "Configuring ${TARGET_TRIPLET}-${SHORT}")
+ vcpkg_execute_required_process(
+ COMMAND ${XALANCROOT}/runConfigure -p linux -c gcc -x g++ -b ${BITS} -P ${P} ${OPTS}
+ WORKING_DIRECTORY ${DIR}
+ LOGNAME configure-${TARGET_TRIPLET}-${SHORT}
+ )
+ message(STATUS "Building ${TARGET_TRIPLET}-${SHORT}")
+ vcpkg_execute_required_process(
+ COMMAND make -i -j${VCPKG_CONCURRENCY}
+ WORKING_DIRECTORY ${DIR}
+ LOGNAME make-${TARGET_TRIPLET}-${SHORT}
+ )
+ message(STATUS "Installing ${TARGET_TRIPLET}-${SHORT}")
+ vcpkg_execute_required_process(
+ COMMAND make install
+ WORKING_DIRECTORY ${DIR}
+ LOGNAME install-${TARGET_TRIPLET}-${SHORT}
+ )
+ endforeach()
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/debug/include)
+ file(COPY ${SOURCE_PATH}/c/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
+ file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright)
+else()
+ set(ENV{CL} "$ENV{CL} \"/I${CURRENT_INSTALLED_DIR}/include\"")
+ set(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/debug/bin")
+
+ vcpkg_install_msbuild(
+ SOURCE_PATH ${SOURCE_PATH}
+ PROJECT_SUBPATH c/projects/Win32/VC10/AllInOne/AllInOne.vcxproj
+ OPTIONS_RELEASE /p:XERCESCROOT=${CURRENT_INSTALLED_DIR}
+ OPTIONS_DEBUG /p:XERCESCROOT=${CURRENT_INSTALLED_DIR}/debug
+ LICENSE_SUBPATH c/LICENSE
+ SKIP_CLEAN
+ )
-file(COPY ${SOURCE_PATH}/c/src/xalanc DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN *.hpp)
+ file(COPY ${SOURCE_PATH}/c/src/xalanc DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN *.hpp)
-# LocalMsgIndex.hpp and LocalMsgData.hpp are here
-file(GLOB NLS_INCLUDES "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/c/Build/*/VC10/Release/Nls/Include/*.hpp")
-if(NOT NLS_INCLUDES)
- message(FATAL_ERROR "Could not locate LocalMsgIndex.hpp")
-endif()
-file(COPY ${NLS_INCLUDES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/xalanc/PlatformSupport)
+ # LocalMsgIndex.hpp and LocalMsgData.hpp are here
+ file(GLOB NLS_INCLUDES "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/c/Build/*/VC10/Release/Nls/Include/*.hpp")
+ if(NOT NLS_INCLUDES)
+ message(FATAL_ERROR "Could not locate LocalMsgIndex.hpp")
+ endif()
+ file(COPY ${NLS_INCLUDES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/xalanc/PlatformSupport)
-vcpkg_clean_msbuild()
+ vcpkg_clean_msbuild()
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/NLS)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/util/MsgLoaders/ICU/resources)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/TestXSLT)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/XalanExe)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/XPathCAPI)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/NLS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/util/MsgLoaders/ICU/resources)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/TestXSLT)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/XalanExe)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xalanc/XPathCAPI)
+endif()