aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/ace
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/ace')
-rw-r--r--vcpkg/ports/ace/portfile.cmake405
-rw-r--r--vcpkg/ports/ace/vcpkg.json56
2 files changed, 461 insertions, 0 deletions
diff --git a/vcpkg/ports/ace/portfile.cmake b/vcpkg/ports/ace/portfile.cmake
new file mode 100644
index 0000000..d3ea352
--- /dev/null
+++ b/vcpkg/ports/ace/portfile.cmake
@@ -0,0 +1,405 @@
+# Using zip archive under Linux would cause sh/perl to report "No such file or directory" or "bad interpreter"
+# when invoking `prj_install.pl`.
+# So far this issue haven't yet be triggered under WSL 1 distributions. Not sure the root cause of it.
+string(REPLACE "." "_" VERSION_DIRECTORY "${VERSION}")
+
+if("tao" IN_LIST FEATURES)
+ # Don't change to vcpkg_from_github! This points to a release and not an archive
+ vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-${VERSION_DIRECTORY}/ACE%2BTAO-src-${VERSION}.tar.gz"
+ FILENAME "ACE-TAO-src-${VERSION}.tar.gz"
+ SHA512 cf582fc5cb5e1df33ade341c73f841d84048b804a354a5095ef2eb44bc32e3edcb42e9335bcabff3363582552ce8e4c64d96625b2ec20cf6e5b346320b3f422c
+ )
+else()
+ # Don't change to vcpkg_from_github! This points to a release and not an archive
+ vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-${VERSION_DIRECTORY}/ACE-src-${VERSION}.tar.gz"
+ FILENAME "ACE-src-${VERSION}.tar.gz"
+ SHA512 137b0310b5b134939446e53ebe4a1af151b4bf272b85327733e4a6142ec5b424d78c61dee90dfb1f645d707ba19935a850250a82156973b0da2de121da148b6a
+ )
+endif()
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+)
+
+set(ACE_ROOT "${SOURCE_PATH}")
+set(ENV{ACE_ROOT} "${ACE_ROOT}")
+set(ACE_SOURCE_PATH "${ACE_ROOT}/ace")
+if("tao" IN_LIST FEATURES)
+ set(TAO_ROOT "${SOURCE_PATH}/TAO")
+ set(ENV{TAO_ROOT} "${TAO_ROOT}")
+ set(WORKSPACE "${TAO_ROOT}/TAO_ACE")
+else()
+ set(WORKSPACE "${ACE_ROOT}/ace/ace")
+endif()
+if("wchar" IN_LIST FEATURES)
+ list(APPEND ACE_FEATURE_LIST "uses_wchar=1")
+endif()
+if("zlib" IN_LIST FEATURES)
+ list(APPEND ACE_FEATURE_LIST "zlib=1")
+ set(ENV{ZLIB_ROOT} "${CURRENT_INSTALLED_DIR}")
+else()
+ list(APPEND ACE_FEATURE_LIST "zlib=0")
+endif()
+if("ssl" IN_LIST FEATURES)
+ list(APPEND ACE_FEATURE_LIST "ssl=1")
+ list(APPEND ACE_FEATURE_LIST "openssl11=1")
+ set(ENV{SSL_ROOT} "${CURRENT_INSTALLED_DIR}")
+else()
+ list(APPEND ACE_FEATURE_LIST "ssl=0")
+endif()
+if("xml-utils" IN_LIST FEATURES)
+ list(APPEND ACE_FEATURE_LIST "xerces3=1")
+ set(ENV{XERCESCROOT} "${CURRENT_INSTALLED_DIR}")
+else()
+ list(APPEND ACE_FEATURE_LIST "xerces3=0")
+endif()
+list(JOIN ACE_FEATURE_LIST "," ACE_FEATURES)
+
+# Acquire Perl and add it to PATH (for execution of MPC)
+vcpkg_find_acquire_program(PERL)
+get_filename_component(PERL_PATH ${PERL} DIRECTORY)
+vcpkg_add_to_path("${PERL_PATH}")
+
+vcpkg_cmake_get_vars(cmake_vars_file)
+include("${cmake_vars_file}")
+
+# Add ace/config.h file
+# see https://htmlpreview.github.io/?https://github.com/DOCGroup/ACE_TAO/blob/master/ACE/ACE-INSTALL.html
+if(VCPKG_TARGET_IS_WINDOWS)
+ if(VCPKG_PLATFORM_TOOLSET MATCHES "v140")
+ set(SOLUTION_TYPE vc14)
+ elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v141")
+ set(SOLUTION_TYPE vs2017)
+ elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v142")
+ set(SOLUTION_TYPE vs2019)
+ else()
+ set(SOLUTION_TYPE vs2022)
+ endif()
+ if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ set(MPC_STATIC_FLAG -static)
+ endif()
+ set(config_h_contents "#include \"ace/config-windows.h\"\n")
+elseif(VCPKG_TARGET_IS_LINUX)
+ set(SOLUTION_TYPE gnuace)
+ set(config_h_contents "#include \"ace/config-linux.h\"\n")
+ file(WRITE "${ACE_ROOT}/include/makeinclude/platform_macros.GNU" "CCFLAGS += -fPIC\ninclude $(ACE_ROOT)/include/makeinclude/platform_linux.GNU")
+elseif(VCPKG_TARGET_IS_OSX)
+ set(SOLUTION_TYPE gnuace)
+ set(config_h_contents "#include \"ace/config-macosx.h\"\n")
+ file(WRITE "${ACE_ROOT}/include/makeinclude/platform_macros.GNU" "include $(ACE_ROOT)/include/makeinclude/platform_macosx.GNU")
+elseif (VCPKG_TARGET_IS_ANDROID)
+ set(SOLUTION_TYPE gnuace)
+ set(config_h_contents "#include \"ace/config-android.h\"\n")
+ file(WRITE "${ACE_ROOT}/include/makeinclude/platform_macros.GNU" "include $(ACE_ROOT)/include/makeinclude/platform_android.GNU")
+ set(ENV{ANDROID_ABI} "${VCPKG_DETECTED_CMAKE_ANDROID_ARCH_ABI}")
+ set(ENV{android_ndk} "${VCPKG_DETECTED_CMAKE_ANDROID_NDK}")
+ set(ENV{android_api} "${VCPKG_DETECTED_CMAKE_SYSTEM_VERSION}")
+endif()
+
+if("wchar" IN_LIST FEATURES)
+ string(APPEND config_h_contents "#define ACE_USES_WCHAR 1\n")
+endif()
+file(WRITE "${ACE_SOURCE_PATH}/config.h" "${config_h_contents}")
+
+if(VCPKG_TARGET_IS_UWP)
+ set(MPC_VALUE_TEMPLATE -value_template link_options+=/APPCONTAINER)
+endif()
+
+# Invoke mwc.pl to generate the necessary solution and project files
+vcpkg_execute_build_process(
+ COMMAND ${PERL} "${ACE_ROOT}/bin/mwc.pl" -type "${SOLUTION_TYPE}" -features "${ACE_FEATURES}" "${WORKSPACE}.mwc" ${MPC_STATIC_FLAG} ${MPC_VALUE_TEMPLATE}
+ WORKING_DIRECTORY "${ACE_ROOT}"
+ LOGNAME mwc-${TARGET_TRIPLET}
+)
+
+if("xml" IN_LIST FEATURES)
+ vcpkg_execute_build_process(
+ COMMAND ${PERL} "${ACE_ROOT}/bin/mwc.pl" -type "${SOLUTION_TYPE}" -features "${ACE_FEATURES}" "${ACE_ROOT}/ACEXML/ACEXML.mwc" ${MPC_STATIC_FLAG} ${MPC_VALUE_TEMPLATE}
+ WORKING_DIRECTORY "${ACE_ROOT}/ACEXML"
+ LOGNAME mwc-xml-${TARGET_TRIPLET}
+ )
+endif()
+
+if(VCPKG_TARGET_IS_WINDOWS)
+ file(RELATIVE_PATH PROJECT_SUBPATH "${SOURCE_PATH}" "${WORKSPACE}.sln")
+ vcpkg_msbuild_install(
+ SOURCE_PATH "${SOURCE_PATH}"
+ PROJECT_SUBPATH "${PROJECT_SUBPATH}"
+ )
+
+ # 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
+ # that is in the source path and ends in .h, .inl
+ function(install_includes ORIGINAL_PATH RELATIVE_PATHS)
+ foreach(RELATIVE_PATH ${RELATIVE_PATHS})
+ file(
+ GLOB
+ HEADER_FILES
+ "${ORIGINAL_PATH}/${RELATIVE_PATH}/*.h"
+ "${ORIGINAL_PATH}/${RELATIVE_PATH}/*.hpp"
+ "${ORIGINAL_PATH}/${RELATIVE_PATH}/*.inl"
+ "${ORIGINAL_PATH}/${RELATIVE_PATH}/*.cpp"
+ "${ORIGINAL_PATH}/${RELATIVE_PATH}/*.idl"
+ "${ORIGINAL_PATH}/${RELATIVE_PATH}/*.pidl")
+ file(INSTALL ${HEADER_FILES}
+ DESTINATION "${CURRENT_PACKAGES_DIR}/include/${RELATIVE_PATH}")
+ endforeach()
+ endfunction()
+
+ set(SOURCE_COPY_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+ # Install headers in subdirectory
+ set(ACE_INCLUDE_FOLDERS
+ "ace"
+ "ace/Compression"
+ "ace/Compression/rle"
+ "ace/ETCL"
+ "ace/QoS"
+ "ace/Monitor_Control"
+ "ace/os_include"
+ "ace/os_include/arpa"
+ "ace/os_include/net"
+ "ace/os_include/netinet"
+ "ace/os_include/sys")
+ install_includes("${SOURCE_COPY_PATH}" "${ACE_INCLUDE_FOLDERS}")
+
+ if("ssl" IN_LIST FEATURES)
+ install_includes("${SOURCE_COPY_PATH}" "ace/SSL")
+ endif()
+
+ if("tao" IN_LIST FEATURES)
+ set(ACEXML_INCLUDE_FOLDERS "ACEXML/apps/svcconf" "ACEXML/common"
+ "ACEXML/parser/parser")
+ install_includes("${SOURCE_COPY_PATH}" "${ACEXML_INCLUDE_FOLDERS}")
+
+ set(ACE_PROTOCOLS_INCLUDE_FOLDERS "ace/HTBP" "ace/INet" "ace/RMCast"
+ "ace/TMCast")
+ install_includes("${SOURCE_COPY_PATH}/protocols" "${ACE_PROTOCOLS_INCLUDE_FOLDERS}")
+
+ install_includes("${SOURCE_COPY_PATH}" "Kokyu")
+
+ set(TAO_ORBSVCS_INCLUDE_FOLDERS
+ "orbsvcs"
+ "orbsvcs/AV"
+ "orbsvcs/Concurrency"
+ "orbsvcs/CosEvent"
+ "orbsvcs/Event"
+ "orbsvcs/FaultTolerance"
+ "orbsvcs/FtRtEvent/ClientORB"
+ "orbsvcs/FtRtEvent/EventChannel"
+ "orbsvcs/FtRtEvent/Utils"
+ "orbsvcs/HTIOP"
+ "orbsvcs/IFRService"
+ "orbsvcs/LifeCycle"
+ "orbsvcs/LoadBalancing"
+ "orbsvcs/Log"
+ "orbsvcs/Naming"
+ "orbsvcs/Naming/FaultTolerant"
+ "orbsvcs/Notify"
+ "orbsvcs/Notify/Any"
+ "orbsvcs/Notify/MonitorControl"
+ "orbsvcs/Notify/MonitorControlExt"
+ "orbsvcs/Notify/Sequence"
+ "orbsvcs/Notify/Structured"
+ "orbsvcs/PortableGroup"
+ "orbsvcs/Property"
+ "orbsvcs/Sched"
+ "orbsvcs/Security"
+ "orbsvcs/Time"
+ "orbsvcs/Trader")
+ if("ssl" IN_LIST FEATURES)
+ list(APPEND TAO_ORBSVCS_INCLUDE_FOLDERS "orbsvcs/SSLIOP")
+ endif()
+ install_includes("${SOURCE_COPY_PATH}/TAO/orbsvcs" "${TAO_ORBSVCS_INCLUDE_FOLDERS}")
+
+ set(TAO_ROOT_ORBSVCS_INCLUDE_FOLDERS "orbsvcs/FT_ReplicationManager"
+ "orbsvcs/Notify_Service")
+ install_includes("${SOURCE_COPY_PATH}/TAO" "${TAO_ROOT_ORBSVCS_INCLUDE_FOLDERS}")
+
+ set(TAO_INCLUDE_FOLDERS
+ "tao"
+ "tao/AnyTypeCode"
+ "tao/BiDir_GIOP"
+ "tao/CSD_Framework"
+ "tao/CSD_ThreadPool"
+ "tao/CodecFactory"
+ "tao/Codeset"
+ "tao/Compression"
+ "tao/Compression/rle"
+ "tao/DiffServPolicy"
+ "tao/DynamicAny"
+ "tao/DynamicInterface"
+ "tao/Dynamic_TP"
+ "tao/ETCL"
+ "tao/EndpointPolicy"
+ "tao/IFR_Client"
+ "tao/IORInterceptor"
+ "tao/IORManipulation"
+ "tao/IORTable"
+ "tao/ImR_Client"
+ "tao/Messaging"
+ "tao/Monitor"
+ "tao/ObjRefTemplate"
+ "tao/PI"
+ "tao/PI_Server"
+ "tao/PortableServer"
+ "tao/RTCORBA"
+ "tao/RTPortableServer"
+ "tao/RTScheduling"
+ "tao/SmartProxies"
+ "tao/Strategies"
+ "tao/TransportCurrent"
+ "tao/TypeCodeFactory"
+ "tao/Utils"
+ "tao/Valuetype"
+ "tao/ZIOP")
+ if("zlib" IN_LIST FEATURES)
+ list(APPEND TAO_INCLUDE_FOLDERS "tao/Compression/zlib")
+ endif()
+ install_includes("${SOURCE_COPY_PATH}/TAO" "${TAO_INCLUDE_FOLDERS}")
+ endif()
+
+ if("xml" IN_LIST FEATURES)
+ file(RELATIVE_PATH PROJECT_SUBPATH_XML "${SOURCE_PATH}" "${ACE_ROOT}/ACEXML/ACEXML.sln")
+ vcpkg_msbuild_install(
+ SOURCE_PATH "${SOURCE_PATH}"
+ PROJECT_SUBPATH "${PROJECT_SUBPATH_XML}"
+ )
+
+ set(ACEXML_INCLUDE_FOLDERS "ACEXML/common"
+ "ACEXML/parser/parser")
+ install_includes("${SOURCE_COPY_PATH}" "${ACEXML_INCLUDE_FOLDERS}")
+ endif()
+
+ # Remove dlls without any export
+ if("tao" IN_LIST FEATURES OR "xml" IN_LIST FEATURES)
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(REMOVE
+ "${CURRENT_PACKAGES_DIR}/bin/ACEXML_XML_Svc_Conf_Parser.dll"
+ "${CURRENT_PACKAGES_DIR}/bin/ACEXML_XML_Svc_Conf_Parser.pdb"
+ "${CURRENT_PACKAGES_DIR}/debug/bin/ACEXML_XML_Svc_Conf_Parserd.dll"
+ "${CURRENT_PACKAGES_DIR}/debug/bin/ACEXML_XML_Svc_Conf_Parserd_dll.pdb")
+ endif()
+ endif()
+elseif(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_ANDROID)
+ FIND_PROGRAM(MAKE make)
+ IF (NOT MAKE)
+ MESSAGE(FATAL_ERROR "MAKE not found")
+ ENDIF ()
+
+ if("ssl" IN_LIST FEATURES)
+ list(APPEND _ace_makefile_macros "ssl=1")
+ endif()
+
+ if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ list(APPEND _ace_makefile_macros "static_libs_only=1")
+ endif()
+
+ set(ENV{INSTALL_PREFIX} "${CURRENT_PACKAGES_DIR}")
+ # Set `PWD` environment variable since ACE's `install` make target calculates install dir using this env.
+ set(_prev_env $ENV{PWD})
+ get_filename_component(WORKING_DIR "${WORKSPACE}" DIRECTORY)
+ set(ENV{PWD} "${WORKING_DIR}")
+
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ message(STATUS "Building ${TARGET_TRIPLET}-dbg")
+ vcpkg_execute_build_process(
+ COMMAND make ${_ace_makefile_macros} "debug=1" "optimize=0" "-j${VCPKG_CONCURRENCY}"
+ WORKING_DIRECTORY "${WORKING_DIR}"
+ LOGNAME make-${TARGET_TRIPLET}-dbg
+ )
+ if("xml" IN_LIST FEATURES)
+ vcpkg_execute_build_process(
+ COMMAND make ${_ace_makefile_macros} "debug=1" "optimize=0" "-j${VCPKG_CONCURRENCY}"
+ WORKING_DIRECTORY "${WORKING_DIR}/../ACEXML"
+ LOGNAME make-xml-${TARGET_TRIPLET}-dbg
+ )
+ endif()
+ message(STATUS "Building ${TARGET_TRIPLET}-dbg done")
+ message(STATUS "Packaging ${TARGET_TRIPLET}-dbg")
+ vcpkg_execute_build_process(
+ COMMAND make ${_ace_makefile_macros} install
+ WORKING_DIRECTORY "${WORKING_DIR}"
+ LOGNAME install-${TARGET_TRIPLET}-dbg
+ )
+ if("xml" IN_LIST FEATURES)
+ vcpkg_execute_build_process(
+ COMMAND make ${_ace_makefile_macros} install
+ WORKING_DIRECTORY "${WORKING_DIR}/../ACEXML"
+ LOGNAME install-xml-${TARGET_TRIPLET}-dbg
+ )
+ endif()
+
+ file(COPY "${CURRENT_PACKAGES_DIR}/lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug")
+
+ file(GLOB _pkg_components "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/*.pc")
+ foreach(_pkg_comp ${_pkg_components})
+ file(READ ${_pkg_comp} _content)
+ string(REPLACE "libdir=${CURRENT_PACKAGES_DIR}/lib" "libdir=${CURRENT_PACKAGES_DIR}/debug/lib" _content ${_content})
+ file(WRITE ${_pkg_comp} ${_content})
+ endforeach()
+ message(STATUS "Packaging ${TARGET_TRIPLET}-dbg done")
+
+ vcpkg_execute_build_process(
+ COMMAND make ${_ace_makefile_macros} realclean
+ WORKING_DIRECTORY "${WORKING_DIR}"
+ LOGNAME realclean-${TARGET_TRIPLET}-dbg
+ )
+ if("xml" IN_LIST FEATURES)
+ vcpkg_execute_build_process(
+ COMMAND make ${_ace_makefile_macros} realclean
+ WORKING_DIRECTORY "${WORKING_DIR}/../ACEXML"
+ LOGNAME realclean-xml-${TARGET_TRIPLET}-dbg
+ )
+ endif()
+endif()
+
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ message(STATUS "Building ${TARGET_TRIPLET}-rel")
+ vcpkg_execute_build_process(
+ COMMAND make ${_ace_makefile_macros} "-j${VCPKG_CONCURRENCY}"
+ WORKING_DIRECTORY "${WORKING_DIR}"
+ LOGNAME make-${TARGET_TRIPLET}-rel
+ )
+ if("xml" IN_LIST FEATURES)
+ vcpkg_execute_build_process(
+ COMMAND make ${_ace_makefile_macros} "-j${VCPKG_CONCURRENCY}"
+ WORKING_DIRECTORY "${WORKING_DIR}/../ACEXML"
+ LOGNAME make-xml-${TARGET_TRIPLET}-rel
+ )
+ endif()
+ message(STATUS "Building ${TARGET_TRIPLET}-rel done")
+ message(STATUS "Packaging ${TARGET_TRIPLET}-rel")
+ vcpkg_execute_build_process(
+ COMMAND make ${_ace_makefile_macros} install
+ WORKING_DIRECTORY "${WORKING_DIR}"
+ LOGNAME install-${TARGET_TRIPLET}-rel
+ )
+ if("xml" IN_LIST FEATURES)
+ vcpkg_execute_build_process(
+ COMMAND make ${_ace_makefile_macros} install
+ WORKING_DIRECTORY "${WORKING_DIR}/../ACEXML"
+ LOGNAME install-xml-${TARGET_TRIPLET}-rel
+ )
+ endif()
+ if("tao" IN_LIST FEATURES)
+ file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools")
+ file(RENAME "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+ endif()
+ message(STATUS "Packaging ${TARGET_TRIPLET}-rel done")
+endif()
+
+ # Restore `PWD` environment variable
+ set($ENV{PWD} _prev_env)
+
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/ace/bin/MakeProjectCreator")
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/share/ace/ace-devel.sh")
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/share/tao/tao-devel.sh")
+endif()
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
+
+vcpkg_fixup_pkgconfig()
diff --git a/vcpkg/ports/ace/vcpkg.json b/vcpkg/ports/ace/vcpkg.json
new file mode 100644
index 0000000..99e4f84
--- /dev/null
+++ b/vcpkg/ports/ace/vcpkg.json
@@ -0,0 +1,56 @@
+{
+ "name": "ace",
+ "version": "8.0.5",
+ "maintainers": "Johnny Willemsen <jwillemsen@remedy.nl>",
+ "description": "The ADAPTIVE Communication Environment",
+ "homepage": "https://github.com/DOCGroup/ACE_TAO",
+ "license": "DOC",
+ "supports": "!uwp",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake-get-vars",
+ "host": true
+ },
+ {
+ "name": "vcpkg-msbuild",
+ "host": true,
+ "platform": "windows"
+ }
+ ],
+ "features": {
+ "ssl": {
+ "description": "Enable SSL/TLS features in ACE",
+ "dependencies": [
+ "openssl"
+ ]
+ },
+ "tao": {
+ "description": "The ACE ORB",
+ "supports": "native | !(windows & arm)"
+ },
+ "wchar": {
+ "description": "Enable extra wide char functions in ACE",
+ "supports": "!osx"
+ },
+ "xml": {
+ "description": "Enable XML features in ACE"
+ },
+ "xml-utils": {
+ "description": "Include the ACE_XML_Utils library",
+ "dependencies": [
+ {
+ "name": "xerces-c",
+ "features": [
+ "xmlch-wchar"
+ ]
+ }
+ ]
+ },
+ "zlib": {
+ "description": "Enable zlib support",
+ "dependencies": [
+ "zlib"
+ ]
+ }
+ }
+}