portfile.cmake 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. # This portfile adds the Qt Cryptographic Arcitecture
  2. # Changes to the original build:
  3. # No -qt5 suffix, which is recommended just for Linux
  4. # Output directories according to vcpkg
  5. # Updated certstore. See certstore.pem in the output dirs
  6. #
  7. vcpkg_find_acquire_program(PERL)
  8. get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
  9. vcpkg_add_to_path(${PERL_EXE_PATH})
  10. if(EXISTS "${CURRENT_BUILDTREES_DIR}/src/.git")
  11. file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src)
  12. endif()
  13. vcpkg_from_github(
  14. OUT_SOURCE_PATH SOURCE_PATH
  15. REPO KDE/qca
  16. REF v2.3.1
  17. SHA512 e04a44fb395e24fd009bb6b005282880bef84ca492b5e15903f9ce3e5e3f93beae3a386a1a381507ed5b0c6550e64c6bf434328f9d965fa7f7d638c3e5d5948b
  18. PATCHES
  19. 0001-fix-path-for-vcpkg.patch
  20. 0002-fix-build-error.patch
  21. noconsole.patch
  22. )
  23. # Remove these files on the cmake next update
  24. vcpkg_download_distfile(ARCHIVE_PKGCONFIG
  25. URLS "https://gitlab.kitware.com/cmake/cmake/-/raw/ab8bd48352df060c4ead210fe30dc4736646206b/Modules/FindPkgConfig.cmake?inline=false"
  26. FILENAME "FindPkgConfig.cmake"
  27. SHA512 d9aada8107eac9ada197d0b1e9040cd3707de7f5838c90bca80321e8eb35931f520635800bea0e2aafeca7fafb08b8e4752d5c6c2d6b1a5d5b4e3225d7818aa6
  28. )
  29. vcpkg_download_distfile(ARCHIVE_PKGHSA
  30. URLS "https://gitlab.kitware.com/cmake/cmake/-/raw/ab8bd48352df060c4ead210fe30dc4736646206b/Modules/FindPackageHandleStandardArgs.cmake?inline=false"
  31. FILENAME "FindPackageHandleStandardArgs.cmake"
  32. SHA512 61a459a9e0797f976fae36ce4fd5a18a30bd13e8bc9d65d165ca760e13ddc27a8c8ad371ad4b41cc36fe227425424fe9bc6e4dfa5cfdc68bd59a3c10005cf3b4
  33. )
  34. vcpkg_download_distfile(ARCHIVE_PKGMSG
  35. URLS "https://gitlab.kitware.com/cmake/cmake/-/raw/ab8bd48352df060c4ead210fe30dc4736646206b/Modules/FindPackageMessage.cmake?inline=false"
  36. FILENAME "FindPackageMessage.cmake"
  37. SHA512 44af652038ecd98c1e54f440e67994759345290530b36f687b7e6d5c310caa55597f3718901fe7a3f8816b560f03b8f238d90aab6ce9b1b24391ab0bb2aa44a8
  38. )
  39. file(COPY ${ARCHIVE_PKGCONFIG} ${ARCHIVE_PKGHSA} ${ARCHIVE_PKGMSG} DESTINATION ${SOURCE_PATH}/cmake/modules)
  40. if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
  41. set(QCA_FEATURE_INSTALL_DIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/Qca)
  42. set(QCA_FEATURE_INSTALL_DIR_RELEASE ${CURRENT_PACKAGES_DIR}/bin/Qca)
  43. else()
  44. set(QCA_FEATURE_INSTALL_DIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug/lib/Qca)
  45. set(QCA_FEATURE_INSTALL_DIR_RELEASE ${CURRENT_PACKAGES_DIR}/lib/Qca)
  46. endif()
  47. # According to:
  48. # https://www.openssl.org/docs/faq.html#USER16
  49. # it is up to developers or admins to maintain CAs.
  50. # So we do it here:
  51. message(STATUS "Importing certstore")
  52. file(REMOVE ${SOURCE_PATH}/certs/rootcerts.pem)
  53. # Using file(DOWNLOAD) to use https
  54. file(DOWNLOAD https://raw.githubusercontent.com/mozilla/gecko-dev/master/security/nss/lib/ckfw/builtins/certdata.txt
  55. ${CURRENT_BUILDTREES_DIR}/cert/certdata.txt
  56. TLS_VERIFY ON
  57. )
  58. vcpkg_execute_required_process(
  59. COMMAND ${PERL} ${CMAKE_CURRENT_LIST_DIR}/mk-ca-bundle.pl -n ${SOURCE_PATH}/certs/rootcerts.pem
  60. WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/cert
  61. LOGNAME ca-bundle
  62. )
  63. message(STATUS "Importing certstore done")
  64. # Configure and build
  65. vcpkg_configure_cmake(
  66. SOURCE_PATH ${SOURCE_PATH}
  67. PREFER_NINJA
  68. OPTIONS
  69. -DUSE_RELATIVE_PATHS=ON
  70. -DQT4_BUILD=OFF
  71. -DBUILD_TESTS=OFF
  72. -DBUILD_TOOLS=OFF
  73. -DQCA_SUFFIX=OFF
  74. -DQCA_FEATURE_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/share/qca/mkspecs/features
  75. -DOSX_FRAMEWORK=OFF
  76. -DWITH_nss_PLUGIN=OFF
  77. -DWITH_pkcs11_PLUGIN=OFF
  78. -DWITH_gnupg_PLUGIN=OFF
  79. -DWITH_gcrypt_PLUGIN=OFF
  80. -DCMAKE_FIND_ROOT_PATH=$ENV{Qt5_DIR}
  81. OPTIONS_DEBUG
  82. -DQCA_PLUGINS_INSTALL_DIR=${QCA_FEATURE_INSTALL_DIR_DEBUG}
  83. OPTIONS_RELEASE
  84. -DQCA_PLUGINS_INSTALL_DIR=${QCA_FEATURE_INSTALL_DIR_RELEASE}
  85. )
  86. vcpkg_install_cmake()
  87. # Patch and copy cmake files
  88. message(STATUS "Patching files")
  89. file(READ
  90. ${CURRENT_PACKAGES_DIR}/debug/share/qca/cmake/QcaTargets-debug.cmake
  91. QCA_DEBUG_CONFIG
  92. )
  93. string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" QCA_DEBUG_CONFIG "${QCA_DEBUG_CONFIG}")
  94. file(WRITE
  95. ${CURRENT_PACKAGES_DIR}/share/qca/cmake/QcaTargets-debug.cmake
  96. "${QCA_DEBUG_CONFIG}"
  97. )
  98. file(READ ${CURRENT_PACKAGES_DIR}/share/qca/cmake/QcaTargets.cmake
  99. QCA_TARGET_CONFIG
  100. )
  101. string(REPLACE "packages/qca_" "installed/" QCA_TARGET_CONFIG "${QCA_TARGET_CONFIG}")
  102. file(WRITE ${CURRENT_PACKAGES_DIR}/share/qca/cmake/QcaTargets.cmake
  103. "${QCA_TARGET_CONFIG}"
  104. )
  105. # Remove unneeded dirs
  106. file(REMOVE_RECURSE
  107. ${CURRENT_BUILDTREES_DIR}/share/man
  108. ${CURRENT_PACKAGES_DIR}/share/man
  109. ${CURRENT_PACKAGES_DIR}/debug/include
  110. ${CURRENT_PACKAGES_DIR}/debug/share
  111. )
  112. message(STATUS "Patching files done")
  113. # Handle copyright
  114. file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)