aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2019-03-25 20:09:36 +0100
committerPhil Christensen <philc@microsoft.com>2019-03-25 12:09:36 -0700
commit42139b5af9eee705ae007980c6e4ba02892ddda5 (patch)
treec0ddb517abc3b230427106c8202012e0b0f1242a
parentb6a08c15af73a2bf39a97fdba45957a3723ad54d (diff)
downloadvcpkg-42139b5af9eee705ae007980c6e4ba02892ddda5.tar.gz
vcpkg-42139b5af9eee705ae007980c6e4ba02892ddda5.zip
[ace] Add support for vcpkg install ace on Linux (#5802)
* [ace] Add support for vcpkg install ace on Linux * ports/ace/CONTROL: * ports/ace/portfile.cmake: * Fix mwc logfile name * ports/ace/portfile.cmake: * Fixed windows detection * ports/ace/portfile.cmake:
-rw-r--r--ports/ace/CONTROL2
-rw-r--r--ports/ace/portfile.cmake57
2 files changed, 45 insertions, 14 deletions
diff --git a/ports/ace/CONTROL b/ports/ace/CONTROL
index cb11cfce5..d3e25dcf9 100644
--- a/ports/ace/CONTROL
+++ b/ports/ace/CONTROL
@@ -1,3 +1,3 @@
Source: ace
-Version: 6.5.4-2
+Version: 6.5.4-3
Description: The ADAPTIVE Communication Environment
diff --git a/ports/ace/portfile.cmake b/ports/ace/portfile.cmake
index 600be9ae0..87fd822ad 100644
--- a/ports/ace/portfile.cmake
+++ b/ports/ace/portfile.cmake
@@ -3,8 +3,10 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
endif()
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- set(MPC_STATIC_FLAG -static)
+ if(NOT VCPKG_CMAKE_SYSTEM_NAME)
set(DLL_DECORATOR s)
+ endif()
+ set(MPC_STATIC_FLAG -static)
endif()
include(vcpkg_common_functions)
set(ACE_ROOT ${CURRENT_BUILDTREES_DIR}/src/ACE_wrappers)
@@ -29,27 +31,54 @@ else ()
set(MSBUILD_PLATFORM ${TRIPLET_SYSTEM_ARCH})
endif()
-if(VCPKG_PLATFORM_TOOLSET MATCHES "v141")
+# Add ace/config.h file
+# see https://htmlpreview.github.io/?https://github.com/DOCGroup/ACE_TAO/blob/master/ACE/ACE-INSTALL.html
+if(NOT VCPKG_CMAKE_SYSTEM_NAME)
+ set(LIB_RELEASE_SUFFIX .lib)
+ set(LIB_DEBUG_SUFFIX d.lib)
+ if(VCPKG_PLATFORM_TOOLSET MATCHES "v141")
set(SOLUTION_TYPE vs2017)
-else()
+ else()
set(SOLUTION_TYPE vc14)
+ endif()
+ file(WRITE ${SOURCE_PATH}/config.h "#include \"ace/config-windows.h\"")
endif()
-# Add ace/config.h file
-# see https://htmlpreview.github.io/?https://github.com/DOCGroup/ACE_TAO/blob/master/ACE/ACE-INSTALL.html
-file(WRITE ${SOURCE_PATH}/config.h "#include \"ace/config-windows.h\"")
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ set(DLL_DECORATOR)
+ set(LIB_RELEASE_SUFFIX .a)
+ set(LIB_DEBUG_SUFFIX .a)
+ set(LIB_PREFIX lib)
+ set(SOLUTION_TYPE gnuace)
+ file(WRITE ${SOURCE_PATH}/config.h "#include \"ace/config-linux.h\"")
+ file(WRITE ${ACE_ROOT}/include/makeinclude/platform_macros.GNU "include $(ACE_ROOT)include/makeinclude/platform_linux.GNU")
+endif()
# Invoke mwc.pl to generate the necessary solution and project files
vcpkg_execute_required_process(
COMMAND ${PERL} ${ACE_ROOT}/bin/mwc.pl -type ${SOLUTION_TYPE} ace ${MPC_STATIC_FLAG}
WORKING_DIRECTORY ${ACE_ROOT}
- LOGNAME mwc
+ LOGNAME mwc-${TARGET_TRIPLET}
)
-vcpkg_build_msbuild(
+if(NOT VCPKG_CMAKE_SYSTEM_NAME)
+ vcpkg_build_msbuild(
PROJECT_PATH ${SOURCE_PATH}/ace.sln
PLATFORM ${MSBUILD_PLATFORM}
-)
+ )
+endif()
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ FIND_PROGRAM(MAKE make)
+ IF (NOT MAKE)
+ MESSAGE(FATAL_ERROR "MAKE not found")
+ ENDIF ()
+ vcpkg_execute_required_process(
+ COMMAND make
+ WORKING_DIRECTORY ${ACE_ROOT}/ace
+ LOGNAME make-${TARGET_TRIPLET}
+ )
+endif()
# ACE itself does not define an install target, so it is not clear which
# headers are public and which not. For the moment we install everything
@@ -93,12 +122,12 @@ function(install_ace_library SOURCE_PATH ACE_LIBRARY)
# Install the lib files
file(INSTALL
- ${LIB_PATH}/${ACE_LIBRARY}${DLL_DECORATOR}d.lib
+ ${LIB_PATH}/${LIB_PREFIX}${ACE_LIBRARY}${DLL_DECORATOR}${LIB_DEBUG_SUFFIX}
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
)
file(INSTALL
- ${LIB_PATH}/${ACE_LIBRARY}${DLL_DECORATOR}.lib
+ ${LIB_PATH}/${LIB_PREFIX}${ACE_LIBRARY}${DLL_DECORATOR}${LIB_RELEASE_SUFFIX}
DESTINATION ${CURRENT_PACKAGES_DIR}/lib
)
endfunction()
@@ -108,11 +137,13 @@ install_ace_library(${ACE_ROOT} "ACE_Compression")
install_ace_library(${ACE_ROOT} "ACE_ETCL")
install_ace_library(${ACE_ROOT} "ACE_ETCL_Parser")
install_ace_library(${ACE_ROOT} "ACE_Monitor_Control")
-install_ace_library(${ACE_ROOT} "ACE_QoS")
+if(NOT VCPKG_CMAKE_SYSTEM_NAME)
+ install_ace_library(${ACE_ROOT} "ACE_QoS")
+endif()
install_ace_library(${ACE_ROOT} "ACE_RLECompression")
# Handle copyright
file(COPY ${ACE_ROOT}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/ace)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/ace/COPYING ${CURRENT_PACKAGES_DIR}/share/ace/copyright)
-vcpkg_copy_pdbs() \ No newline at end of file
+vcpkg_copy_pdbs()