Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup QGIS port #4567

Merged
merged 5 commits into from
Sep 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 14 additions & 61 deletions vcpkg/overlay/qgis-qt6/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -33,18 +33,21 @@ file(REMOVE ${SOURCE_PATH}/cmake/FindPoly2Tri.cmake)

vcpkg_find_acquire_program(FLEX)
vcpkg_find_acquire_program(BISON)
vcpkg_find_acquire_program(PYTHON3)
get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY)
vcpkg_add_to_path(${PYTHON3_PATH})
vcpkg_add_to_path(${PYTHON3_PATH}/Scripts)
set(PYTHON_EXECUTABLE ${PYTHON3})

list(APPEND QGIS_OPTIONS -DENABLE_TESTS:BOOL=OFF)
list(APPEND QGIS_OPTIONS -DWITH_QTWEBKIT:BOOL=OFF)
list(APPEND QGIS_OPTIONS -DWITH_GRASS7:BOOL=OFF)
list(APPEND QGIS_OPTIONS -DWITH_SPATIALITE:BOOL=ON)
list(APPEND QGIS_OPTIONS -DWITH_QSPATIALITE:BOOL=OFF)
list(APPEND QGIS_OPTIONS -DWITH_PDAL:BOOL=OFF)
list(APPEND QGIS_OPTIONS "-DENABLE_TESTS:BOOL=OFF")
list(APPEND QGIS_OPTIONS "-DWITH_QTWEBKIT:BOOL=OFF")
list(APPEND QGIS_OPTIONS "-DWITH_GRASS7:BOOL=OFF")
list(APPEND QGIS_OPTIONS "-DWITH_SPATIALITE:BOOL=ON")
list(APPEND QGIS_OPTIONS "-DWITH_QSPATIALITE:BOOL=OFF")
list(APPEND QGIS_OPTIONS "-DWITH_PDAL:BOOL=OFF")

list(APPEND QGIS_OPTIONS "-DBISON_EXECUTABLE=${BISON}")
list(APPEND QGIS_OPTIONS "-DFLEX_EXECUTABLE=${FLEX}")
# By default QGIS installs includes into "include" on Windows and into "include/qgis" everywhere else
# let's keep things clean and tidy and put them at a predictable location
list(APPEND QGIS_OPTIONS "-DQGIS_INCLUDE_SUBDIR=include/qgis")
list(APPEND QGIS_OPTIONS "-DBUILD_WITH_QT6=ON")
list(APPEND QGIS_OPTIONS "-DQGIS_MACAPP_FRAMEWORK=FALSE")

if("opencl" IN_LIST FEATURES)
list(APPEND QGIS_OPTIONS -DUSE_OPENCL:BOOL=ON)
Expand Down Expand Up @@ -129,66 +132,19 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
list(APPEND QGIS_OPTIONS -DQGIS_PLUGIN_SUBDIR=lib)
endif()

# By default QGIS installs includes into "include" on Windows and into "include/qgis" everywhere else
# let's keep things clean and tidy and put them at a predictable location
list(APPEND QGIS_OPTIONS -DQGIS_INCLUDE_SUBDIR=include/qgis)
list(APPEND QGIS_OPTIONS -DBUILD_WITH_QT6=ON)

if(VCPKG_CROSSCOMPILING)
list(APPEND QGIS_OPTIONS -DQT_HOST_PATH=${CURRENT_HOST_INSTALLED_DIR})
list(APPEND QGIS_OPTIONS -DQT_HOST_PATH_CMAKE_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share)
endif()

if(VCPKG_TARGET_IS_WINDOWS)
##############################################################################
#Install pip
#if(NOT EXISTS "${PYTHON3_PATH}/Scripts/pip.exe")
# MESSAGE(STATUS "Install pip for Python Begin ...")
# vcpkg_download_distfile(
# GET_PIP_PATH
# URLS https://bootstrap.pypa.io/pip/3.6/get-pip.py
# FILENAME get-pip.py
# SHA512 79b8c9041f5c2f5420503a1b53bbd4da7505f5cf9bb4a7cc5560732f687c5282834f807d6d5ed19d41865e64ee99ad48a603d0d2c93265fd7e14ecba4b53d007
# )
#
# vcpkg_execute_required_process(
# COMMAND "${PYTHON_EXECUTABLE}" "${GET_PIP_PATH}"
# WORKING_DIRECTORY ${PYTHON3_PATH}
# LOGNAME pip
# )
#
# vcpkg_execute_required_process(
# COMMAND "${PYTHON_EXECUTABLE}" -m pip install --upgrade pip
# WORKING_DIRECTORY ${PYTHON3_PATH}
# LOGNAME pip
# )
# MESSAGE(STATUS "Install pip for Python End")
#endif (NOT EXISTS "${PYTHON3_PATH}/Scripts/pip.exe")
##############################################################################

list(APPEND QGIS_OPTIONS -DBISON_EXECUTABLE="${BISON}")
list(APPEND QGIS_OPTIONS -DFLEX_EXECUTABLE="${FLEX}")

list(APPEND QGIS_OPTIONS -DPYUIC_PROGRAM=${PYTHON3_PATH}/Scripts/pyuic5.exe)
list(APPEND QGIS_OPTIONS -DPYRCC_PROGRAM=${PYTHON3_PATH}/Scripts/pyrcc5.exe)
list(APPEND QGIS_OPTIONS -DQT_LRELEASE_EXECUTABLE=${CURRENT_INSTALLED_DIR}/tools/qt5-tools/bin/lrelease.exe)

# qgis_gui depends on Qt5UiTools, and Qt5UiTools is a static library.
# If Qt5_EXCLUDE_STATIC_DEPENDENCIES is not set, it will add the QT release library that it depends on.
# so that in debug mode, it will reference both the qt debug library and the release library.
# In Debug mode, add Qt5_EXCLUDE_STATIC_DEPENDENCIES to avoid this bug
list(APPEND QGIS_OPTIONS_DEBUG -DQt5_EXCLUDE_STATIC_DEPENDENCIES:BOOL=ON)

FIND_LIB_OPTIONS(GDAL gdal gdald LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX})
FIND_LIB_OPTIONS(GEOS geos_c geos_cd LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX})
FIND_LIB_OPTIONS(GSL gsl gsld LIB ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX})
FIND_LIB_OPTIONS(GSLCBLAS gslcblas gslcblasd LIB ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX})
FIND_LIB_OPTIONS(POSTGRES libpq libpq LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX})
FIND_LIB_OPTIONS(PROJ proj proj_d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX})
FIND_LIB_OPTIONS(PYTHON python39 python39_d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX})
FIND_LIB_OPTIONS(QCA qca qcad LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX})
FIND_LIB_OPTIONS(QTKEYCHAIN qt5keychain qt5keychaind LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX})
FIND_LIB_OPTIONS(QSCINTILLA qscintilla2_qt5 qscintilla2_qt5d LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX})
if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
FIND_LIB_OPTIONS(ZSTD zstd_static zstd_staticd LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX})
endif()
Expand All @@ -210,7 +166,6 @@ if(VCPKG_TARGET_IS_WINDOWS)
list(APPEND QGIS_OPTIONS -DWITH_INTERNAL_POLY2TRI=OFF)
list(APPEND QGIS_OPTIONS -DPoly2Tri_LIBRARY=poly2tri::poly2tri)
else() # Build in UNIX
list(APPEND QGIS_OPTIONS -DCMAKE_FIND_ROOT_PATH=$ENV{Qt5_DIR}) # for building with system Qt. Should find a nicer solution.
list(APPEND QGIS_OPTIONS -DGSL_CONFIG=" ")
list(APPEND QGIS_OPTIONS -DGSL_INCLUDE_DIR:PATH=${CURRENT_INSTALLED_DIR}/include)
list(APPEND QGIS_OPTIONS -DPROJ_INCLUDE_DIR:PATH=${CURRENT_INSTALLED_DIR}/include)
Expand Down Expand Up @@ -240,8 +195,6 @@ else() # Build in UNIX
endif()
endif()

list(APPEND QGIS_OPTIONS -DQGIS_MACAPP_FRAMEWORK=FALSE)

if(VCPKG_TARGET_IS_IOS)
list(APPEND QGIS_OPTIONS -DWITH_QTSERIALPORT=FALSE)
endif()
Expand Down
88 changes: 24 additions & 64 deletions vcpkg/overlay/qgis/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,21 @@ file(REMOVE ${SOURCE_PATH}/cmake/FindPoly2Tri.cmake)

vcpkg_find_acquire_program(FLEX)
vcpkg_find_acquire_program(BISON)
vcpkg_find_acquire_program(PYTHON3)
get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY)
vcpkg_add_to_path(${PYTHON3_PATH})
vcpkg_add_to_path(${PYTHON3_PATH}/Scripts)
set(PYTHON_EXECUTABLE ${PYTHON3})

list(APPEND QGIS_OPTIONS -DENABLE_TESTS:BOOL=OFF)
list(APPEND QGIS_OPTIONS -DWITH_QTWEBKIT:BOOL=OFF)
list(APPEND QGIS_OPTIONS -DWITH_GRASS7:BOOL=OFF)
list(APPEND QGIS_OPTIONS -DWITH_SPATIALITE:BOOL=ON)
list(APPEND QGIS_OPTIONS -DWITH_QSPATIALITE:BOOL=OFF)
list(APPEND QGIS_OPTIONS -DWITH_PDAL:BOOL=OFF)
list(APPEND QGIS_OPTIONS "-DENABLE_TESTS:BOOL=OFF")
list(APPEND QGIS_OPTIONS "-DWITH_QTWEBKIT:BOOL=OFF")
list(APPEND QGIS_OPTIONS "-DWITH_GRASS7:BOOL=OFF")
list(APPEND QGIS_OPTIONS "-DWITH_SPATIALITE:BOOL=ON")
list(APPEND QGIS_OPTIONS "-DWITH_QSPATIALITE:BOOL=OFF")
list(APPEND QGIS_OPTIONS "-DWITH_PDAL:BOOL=OFF")

list(APPEND QGIS_OPTIONS "-DBISON_EXECUTABLE=${BISON}")
list(APPEND QGIS_OPTIONS "-DFLEX_EXECUTABLE=${FLEX}")
# By default QGIS installs includes into "include" on Windows and into "include/qgis" everywhere else
# let's keep things clean and tidy and put them at a predictable location
list(APPEND QGIS_OPTIONS "-DQGIS_INCLUDE_SUBDIR=include/qgis")
list(APPEND QGIS_OPTIONS "-DBUILD_WITH_QT6=OFF")
list(APPEND QGIS_OPTIONS "-DQGIS_MACAPP_FRAMEWORK=FALSE")

if("opencl" IN_LIST FEATURES)
list(APPEND QGIS_OPTIONS -DUSE_OPENCL:BOOL=ON)
Expand Down Expand Up @@ -131,50 +134,9 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
list(APPEND QGIS_OPTIONS -DQGIS_PLUGIN_SUBDIR=lib)
endif()

# By default QGIS installs includes into "include" on Windows and into "include/qgis" everywhere else
# let's keep things clean and tidy and put them at a predictable location
list(APPEND QGIS_OPTIONS -DQGIS_INCLUDE_SUBDIR=include/qgis)

if(VCPKG_TARGET_IS_WINDOWS)
##############################################################################
#Install pip
if(NOT EXISTS "${PYTHON3_PATH}/Scripts/pip.exe")
MESSAGE(STATUS "Install pip for Python Begin ...")
vcpkg_download_distfile(
GET_PIP_PATH
URLS https://bootstrap.pypa.io/pip/3.6/get-pip.py
FILENAME get-pip.py
SHA512 79b8c9041f5c2f5420503a1b53bbd4da7505f5cf9bb4a7cc5560732f687c5282834f807d6d5ed19d41865e64ee99ad48a603d0d2c93265fd7e14ecba4b53d007
)

vcpkg_execute_required_process(
COMMAND "${PYTHON_EXECUTABLE}" "${GET_PIP_PATH}"
WORKING_DIRECTORY ${PYTHON3_PATH}
LOGNAME pip
)

vcpkg_execute_required_process(
COMMAND "${PYTHON_EXECUTABLE}" -m pip install --upgrade pip
WORKING_DIRECTORY ${PYTHON3_PATH}
LOGNAME pip
)
MESSAGE(STATUS "Install pip for Python End")
endif (NOT EXISTS "${PYTHON3_PATH}/Scripts/pip.exe")
##############################################################################

list(APPEND QGIS_OPTIONS -DBISON_EXECUTABLE="${BISON}")
list(APPEND QGIS_OPTIONS -DFLEX_EXECUTABLE="${FLEX}")

list(APPEND QGIS_OPTIONS -DPYUIC_PROGRAM=${PYTHON3_PATH}/Scripts/pyuic5.exe)
list(APPEND QGIS_OPTIONS -DPYRCC_PROGRAM=${PYTHON3_PATH}/Scripts/pyrcc5.exe)
list(APPEND QGIS_OPTIONS -DQT_LRELEASE_EXECUTABLE=${CURRENT_INSTALLED_DIR}/tools/qt5-tools/bin/lrelease.exe)

# qgis_gui depends on Qt5UiTools, and Qt5UiTools is a static library.
# If Qt5_EXCLUDE_STATIC_DEPENDENCIES is not set, it will add the QT release library that it depends on.
# so that in debug mode, it will reference both the qt debug library and the release library.
# In Debug mode, add Qt5_EXCLUDE_STATIC_DEPENDENCIES to avoid this bug
list(APPEND QGIS_OPTIONS_DEBUG -DQt5_EXCLUDE_STATIC_DEPENDENCIES:BOOL=ON)

FIND_LIB_OPTIONS(GDAL gdal gdald LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX})
FIND_LIB_OPTIONS(GEOS geos_c geos_cd LIBRARY ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX})
FIND_LIB_OPTIONS(GSL gsl gsld LIB ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX})
Expand Down Expand Up @@ -243,8 +205,6 @@ else() # Build in UNIX
endif()
endif()

list(APPEND QGIS_OPTIONS -DQGIS_MACAPP_FRAMEWORK=FALSE)

if(VCPKG_TARGET_IS_IOS)
list(APPEND QGIS_OPTIONS -DWITH_QTSERIALPORT=FALSE)
endif()
Expand All @@ -263,8 +223,8 @@ if(VCPKG_TARGET_IS_WINDOWS)
function(copy_path basepath targetdir)
file(GLOB ${basepath}_PATH ${CURRENT_PACKAGES_DIR}/${basepath}/*)
if( ${basepath}_PATH )
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/${targetdir}/${PORT}/${basepath})
file(COPY ${${basepath}_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/${targetdir}/${PORT}/${basepath})
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/${targetdir}/qgis/${basepath})
file(COPY ${${basepath}_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/${targetdir}/qgis/${basepath})
endif()

if(EXISTS "${CURRENT_PACKAGES_DIR}/${basepath}/")
Expand All @@ -274,21 +234,21 @@ if(VCPKG_TARGET_IS_WINDOWS)

file(GLOB QGIS_TOOL_PATH ${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/*${VCPKG_TARGET_EXECUTABLE_SUFFIX})
if(QGIS_TOOL_PATH)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin)
file(COPY ${QGIS_TOOL_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/qgis/bin)
file(COPY ${QGIS_TOOL_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qgis/bin)
file(REMOVE_RECURSE ${QGIS_TOOL_PATH})
file(GLOB QGIS_TOOL_PATH ${CURRENT_PACKAGES_DIR}/bin/* )
file(COPY ${QGIS_TOOL_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin)
file(COPY ${QGIS_TOOL_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qgis/bin)
endif()

file(GLOB QGIS_TOOL_PATH_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/debug/*${VCPKG_TARGET_EXECUTABLE_SUFFIX})
if(QGIS_TOOL_PATH_DEBUG)
if("debug-tools" IN_LIST FEATURES)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin)
file(COPY ${QGIS_TOOL_PATH_DEBUG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/tools/qgis/bin)
file(COPY ${QGIS_TOOL_PATH_DEBUG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/qgis/bin)
file(REMOVE_RECURSE ${QGIS_TOOL_PATH_DEBUG})
file(GLOB QGIS_TOOL_PATH_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/* )
file(COPY ${QGIS_TOOL_PATH_DEBUG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/bin)
file(COPY ${QGIS_TOOL_PATH_DEBUG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/qgis/bin)
else()
file(REMOVE_RECURSE ${QGIS_TOOL_PATH_DEBUG})
endif()
Expand Down Expand Up @@ -343,7 +303,7 @@ endif()

file(GLOB QGIS_CMAKE_PATH ${CURRENT_PACKAGES_DIR}/*.cmake)
if(QGIS_CMAKE_PATH)
file(COPY ${QGIS_CMAKE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/cmake/${PORT})
file(COPY ${QGIS_CMAKE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/cmake/qgis)
file(REMOVE_RECURSE ${QGIS_CMAKE_PATH})
endif()

Expand All @@ -360,4 +320,4 @@ file(REMOVE_RECURSE # Added for debug porpose
)

# Handle copyright
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/qgis RENAME copyright)
Loading