[osgEarth] Update port to osgEarth 3.7 (#41322)

Co-authored-by: Kai Pastor <dg0yt@darc.de>
Co-authored-by: Lily Wang <94091114+LilyWangLL@users.noreply.github.com>
This commit is contained in:
Paul Levy 2024-10-18 01:28:00 -04:00 committed by GitHub
parent 7dcb4ca95b
commit 0945e17e79
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 34 additions and 286 deletions

View File

@ -1,22 +0,0 @@
diff --git a/src/osgEarth/FeatureRasterizer.cpp b/src/osgEarth/FeatureRasterizer.cpp
index 2b823a58f..ecf1cd13f 100644
--- a/src/osgEarth/FeatureRasterizer.cpp
+++ b/src/osgEarth/FeatureRasterizer.cpp
@@ -487,7 +487,7 @@ namespace osgEarth {
ctx.scale(scale);
ctx.blitImage(BLPoint((double)g->left - GLYPH_PADDING, (double)(-g->top) - GLYPH_PADDING), sprite, glyphRect);
//ctx.blitImage(BLPoint(0, 0), sprite, glyphRect);
- ctx.resetMatrix();
+ ctx.resetTransform();
#if 0
// Draw the text bounding box
@@ -572,7 +572,7 @@ namespace osgEarth {
ctx.translate(x, y);
ctx.scale(scale);
ctx.blitImage(BLPoint(-iconRect.w / 2.0, -iconRect.h / 2.0), sprite, iconRect);
- ctx.resetMatrix();
+ ctx.resetTransform();
}
});
}

View File

@ -1,16 +0,0 @@
diff --git a/CMakeModules/OsgEarthMacroUtils.cmake b/CMakeModules/OsgEarthMacroUtils.cmake
index 8fab78376..838dcc581 100644
--- a/CMakeModules/OsgEarthMacroUtils.cmake
+++ b/CMakeModules/OsgEarthMacroUtils.cmake
@@ -220,9 +220,9 @@ MACRO(SETUP_PLUGIN PLUGIN_NAME)
#the installation path are differentiated for win32 that install in bib versus other architecture that install in lib${LIB_POSTFIX}/${VPB_PLUGINS}
IF(WIN32)
- INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib/${OSG_PLUGINS} LIBRARY DESTINATION bin/${OSG_PLUGINS} )
+ INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib/${OSG_PLUGINS} LIBRARY DESTINATION plugins/${OSG_PLUGINS} )
ELSE(WIN32)
- INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib${LIB_POSTFIX}/${OSG_PLUGINS} LIBRARY DESTINATION lib${LIB_POSTFIX}/${OSG_PLUGINS} )
+ INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib${LIB_POSTFIX}/${OSG_PLUGINS} LIBRARY DESTINATION plugins${LIB_POSTFIX}/${OSG_PLUGINS} )
ENDIF(WIN32)
IF(OSG_BUILD_PLATFORM_IPHONE)

View File

@ -1,112 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cf8245b8b..233390a5f 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -127,9 +127,9 @@ mark_as_advanced(OSGEARTH_ASSUME_SINGLE_GL_CONTEXT)
# Mobile/GLES:
IF (OSGEARTH_USE_GLES)
- find_package(OpenGLES)
+ find_package(OpenGLES REQUIRED)
ELSE ()
- find_package(OpenGL)
+ find_package(OpenGL REQUIRED)
ENDIF (OSGEARTH_USE_GLES)
@@ -147,35 +147,54 @@ if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
endif()
# required
-find_package(OSG REQUIRED)
+find_package(OSG NAMES unofficial-osg)
+find_path(OSG_INCLUDE_DIR osg/Version) # For detecting the version and setting the plugin path
+set(OSG_INCLUDE_DIRS "")
+set(OSG_LIBRARY unofficial::osg::osg)
+set(OSGUTIL_LIBRARY unofficial::osg::osgUtil)
+set(OSGDB_LIBRARY unofficial::osg::osgDB)
+set(OSGTEXT_LIBRARY unofficial::osg::osgText)
+set(OSGSIM_LIBRARY unofficial::osg::osgSim)
+set(OSGVIEWER_LIBRARY unofficial::osg::osgViewer)
+set(OSGGA_LIBRARY unofficial::osg::osgViewer)
+set(OSGSHADOW_LIBRARY unofficial::osg::osgShadow)
+set(OSGMANIPULATOR_LIBRARY unofficial::osg::osgManipulator)
+set(OPENTHREADS_LIBRARY unofficial::osg::OpenThreads)
find_package(CURL REQUIRED)
find_package(GDAL REQUIRED)
# optional
-find_package(GEOS)
-find_package(Sqlite3)
-find_package(Draco)
-find_package(BASISU)
-find_package(GLEW)
-find_package(Protobuf)
-find_package(WEBP)
-find_package(Blend2D)
-find_package(Blosc)
+find_package(GEOS CONFIG REQUIRED)
+set(GEOS_LIBRARY GEOS::geos_c)
+find_package(SQLITE3 NAMES unofficial-sqlite3 REQUIRED)
+set(SQLITE3_LIBRARY unofficial::sqlite3::sqlite3)
+find_package(Draco REQUIRED)
+find_package(BASISU REQUIRED)
+find_package(GLEW REQUIRED)
+find_package(Protobuf REQUIRED)
+find_package(WEBP NAMES WebP CONFIG REQUIRED)
+set(WEBP_LIBRARY WebP::webp)
+if(WITH_BLEND2D)
+ find_package(BLEND2D CONFIG REQUIRED)
+ set(BLEND2D_LIBRARY blend2d::blend2d)
+endif()
+find_package(BLOSC REQUIRED)
if(OSGEARTH_ENABLE_PROFILING)
- find_package(Tracy)
+ find_package(Tracy REQUIRED)
endif()
if(OSGEARTH_BUILD_ZIP_PLUGIN)
- find_package(LibZip)
+ find_package(libzip CONFIG REQUIRED)
+ set(LIBZIP_LIBRARY libzip::zip)
endif()
if(OSGEARTH_BUILD_TRITON_NODEKIT)
- find_package(Triton QUIET)
+ find_package(Triton QUIET REQUIRED)
endif()
if(OSGEARTH_BUILD_SILVERLINING_NODEKIT)
- find_package(SilverLining QUIET)
+ find_package(SilverLining QUIET REQUIRED)
endif()
# Sqlite enables the MBTiles format:
@@ -221,7 +240,7 @@ SET (PROTOBUF_USE_DLLS FALSE CACHE BOOL "Set this to true if Protobuf is compile
# Duktape is the JavaScript interpreter
SET (WITH_EXTERNAL_DUKTAPE FALSE CACHE BOOL "Use bundled or system wide version of Duktape")
IF (WITH_EXTERNAL_DUKTAPE)
- find_package(Duktape)
+ find_package(Duktape REQUIRED)
ENDIF (WITH_EXTERNAL_DUKTAPE)
# Whether to install shaders (glsl files).
@@ -232,7 +251,8 @@ OPTION(OSGEARTH_INSTALL_SHADERS "Whether to deploy GLSL shaders when doing a Mak
# TinyXML is an XML parsing library
SET (WITH_EXTERNAL_TINYXML FALSE CACHE BOOL "Use bundled or system wide version of TinyXML")
IF (WITH_EXTERNAL_TINYXML)
- find_package(TinyXML)
+ find_package(TINYXML NAMES tinyxml REQUIRED)
+ set(TINYXML_LIBRARY unofficial-tinyxml::unofficial-tinyxml)
ENDIF (WITH_EXTERNAL_TINYXML)
# postfix settings for various configs
@@ -307,6 +327,7 @@ IF(OSGEARTH_BUILD_SHARED_LIBS)
SET(OSGEARTH_DYNAMIC_OR_STATIC "SHARED")
ELSE()
SET(OSGEARTH_DYNAMIC_OR_STATIC "STATIC")
+ add_definitions(-DOSGEARTH_LIBRARY_STATIC)
ENDIF()

View File

@ -0,0 +1,13 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2e147e4d1..133940902 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,7 +55,7 @@ set(OSGEARTH_EMBEDDED_THIRD_PARTY_DIR ${PROJECT_SOURCE_DIR}/src/third_party)
set(INSTALL_RUNTIME_FOLDER "bin${OSGEARTH_INSTALL_FOLDER_SUFFIX}") # executables
set(INSTALL_LIBRARY_FOLDER "bin${OSGEARTH_INSTALL_FOLDER_SUFFIX}") # .dll/.so
set(INSTALL_ARCHIVE_FOLDER "lib${OSGEARTH_INSTALL_FOLDER_SUFFIX}") # .lib/.a
-set(INSTALL_PLUGINS_FOLDER "bin${OSGEARTH_INSTALL_FOLDER_SUFFIX}") # parent folder of OSG plugins folder
+set(INSTALL_PLUGINS_FOLDER "plugins") # parent folder of OSG plugins folder
include(oe_ios)
include(oe_osx)

View File

@ -1,16 +0,0 @@
diff --git a/CMakeModules/OsgEarthMacroUtils.cmake b/CMakeModules/OsgEarthMacroUtils.cmake
index 7dd0998..730af85 100644
--- a/CMakeModules/OsgEarthMacroUtils.cmake
+++ b/CMakeModules/OsgEarthMacroUtils.cmake
@@ -92,6 +92,11 @@ ENDMACRO(DETECT_OSG_VERSION)
MACRO(LINK_WITH_VARIABLES TRGTNAME)
FOREACH(varname ${ARGN})
+ string(REPLACE "_LIBRARY" "_LIBRARIES" lwv_libraries "${varname}")
+ if(DEFINED ${lwv_libraries})
+ TARGET_LINK_LIBRARIES(${TRGTNAME} ${${lwv_libraries}})
+ continue()
+ endif()
IF(${varname}_DEBUG)
IF(${varname}_RELEASE)
TARGET_LINK_LIBRARIES(${TRGTNAME} optimized "${${varname}_RELEASE}" debug "${${varname}_DEBUG}")

View File

@ -2,16 +2,11 @@ vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO gwaldron/osgearth
REF "osgearth-${VERSION}"
SHA512 f65c31922bebcbf722474a047dc29c8c1ceec9c037b0704811af2627fc2d0a124b6e95888e7d3b9b0e5acc146a88ebf8669e3f864a75a91751c3a4571d05a630
SHA512 2f764eb1fff21cff57a04eceb73643b372c8b70899114c88cdf9928d525517214959745cb70b99ad3d1def946bfb3f58f16b4969ee4117b7563398f2410ee3e2
HEAD_REF master
PATCHES
link-libraries.patch
find-package.patch
remove-tool-debug-suffix.patch
remove-lerc-gltf.patch
export-plugins.patch
protobuf.patch
blend2d.patch
install-plugins.patch
)
if("tools" IN_LIST FEATURES)
@ -22,8 +17,8 @@ if("tools" IN_LIST FEATURES)
vcpkg_from_github(
OUT_SOURCE_PATH IMGUI_SOURCE_PATH
REPO ocornut/imgui
REF 9e8e5ac36310607012e551bb04633039c2125c87 #docking branch
SHA512 1f1f743833c9a67b648922f56a638a11683b02765d86f14a36bc6c242cc524c4c5c5c0b7356b8053eb923fafefc53f4c116b21fb3fade7664554a1ad3b25e5ff
REF cab7edd135fb8a02b3552e9abe4c312d595e8777 #docking branch
SHA512 26dfe94793bcc7b041c723cfbf2033c32e5050d87b99856746f9f3e7f562db15b9432bf92747db7823acbc6e366dbcb023653692bb5336ce65a98483c4d8232a
HEAD_REF master
)
@ -33,16 +28,6 @@ if("tools" IN_LIST FEATURES)
file(COPY "${IMGUI_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/src/third_party/imgui")
endif()
file(REMOVE
"${SOURCE_PATH}/CMakeModules/FindBlend2D.cmake"
"${SOURCE_PATH}/CMakeModules/FindGEOS.cmake"
"${SOURCE_PATH}/CMakeModules/FindLibZip.cmake"
"${SOURCE_PATH}/CMakeModules/FindOSG.cmake"
"${SOURCE_PATH}/CMakeModules/FindSqlite3.cmake"
"${SOURCE_PATH}/CMakeModules/FindWEBP.cmake"
"${SOURCE_PATH}/src/osgEarth/tinyxml.h" # https://github.com/gwaldron/osgearth/issues/1002
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
@ -63,6 +48,7 @@ vcpkg_cmake_configure(
-DOSGEARTH_BUILD_PROCEDURAL_NODEKIT=OFF
-DOSGEARTH_BUILD_TRITON_NODEKIT=OFF
-DOSGEARTH_BUILD_SILVERLINING_NODEKIT=OFF
-DOSGEARTH_BUILD_ZIP_PLUGIN=OFF
-DWITH_EXTERNAL_TINYXML=ON
-DCMAKE_JOB_POOL_LINK=console # Serialize linking to avoid OOM
OPTIONS_DEBUG
@ -72,7 +58,7 @@ vcpkg_cmake_configure(
)
vcpkg_cmake_install()
vcpkg_cmake_config_fixup(CONFIG_PATH cmake/)
vcpkg_cmake_config_fixup()
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/osgEarth/Export" "defined( OSGEARTH_LIBRARY_STATIC )" "1")
@ -89,8 +75,7 @@ if("tools" IN_LIST FEATURES)
endif()
endif()
vcpkg_copy_tools(TOOL_NAMES osgearth_3pv osgearth_atlas osgearth_bakefeaturetiles osgearth_boundarygen
osgearth_clamp osgearth_conv osgearth_imgui osgearth_tfs osgearth_toc osgearth_version osgearth_viewer
osgearth_createtile osgearth_mvtindex
osgearth_clamp osgearth_conv osgearth_imgui osgearth_tfs osgearth_version osgearth_viewer
AUTO_CLEAN
)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug")

View File

@ -1,74 +0,0 @@
diff --git a/CMakeModules/OsgEarthMacroUtils.cmake b/CMakeModules/OsgEarthMacroUtils.cmake
index ccf209f6a..e961531f8 100644
--- a/CMakeModules/OsgEarthMacroUtils.cmake
+++ b/CMakeModules/OsgEarthMacroUtils.cmake
@@ -94,28 +94,28 @@ MACRO(LINK_WITH_VARIABLES TRGTNAME)
FOREACH(varname ${ARGN})
string(REPLACE "_LIBRARY" "_LIBRARIES" lwv_libraries "${varname}")
if(DEFINED ${lwv_libraries})
- TARGET_LINK_LIBRARIES(${TRGTNAME} ${${lwv_libraries}})
+ TARGET_LINK_LIBRARIES(${TRGTNAME} PUBLIC ${${lwv_libraries}})
continue()
endif()
IF(${varname}_DEBUG)
IF(${varname}_RELEASE)
- TARGET_LINK_LIBRARIES(${TRGTNAME} optimized "${${varname}_RELEASE}" debug "${${varname}_DEBUG}")
+ TARGET_LINK_LIBRARIES(${TRGTNAME} PUBLIC optimized "${${varname}_RELEASE}" debug "${${varname}_DEBUG}")
ELSE(${varname}_RELEASE)
- TARGET_LINK_LIBRARIES(${TRGTNAME} optimized "${${varname}}" debug "${${varname}_DEBUG}")
+ TARGET_LINK_LIBRARIES(${TRGTNAME} PUBLIC optimized "${${varname}}" debug "${${varname}_DEBUG}")
ENDIF(${varname}_RELEASE)
ELSE(${varname}_DEBUG)
- TARGET_LINK_LIBRARIES(${TRGTNAME} ${${varname}} )
+ TARGET_LINK_LIBRARIES(${TRGTNAME} PUBLIC ${${varname}} )
ENDIF(${varname}_DEBUG)
ENDFOREACH(varname)
ENDMACRO(LINK_WITH_VARIABLES TRGTNAME)
MACRO(LINK_INTERNAL TRGTNAME)
- TARGET_LINK_LIBRARIES(${TRGTNAME} ${ARGN})
+ TARGET_LINK_LIBRARIES(${TRGTNAME} PUBLIC ${ARGN})
ENDMACRO(LINK_INTERNAL TRGTNAME)
MACRO(LINK_EXTERNAL TRGTNAME)
FOREACH(LINKLIB ${ARGN})
- TARGET_LINK_LIBRARIES(${TRGTNAME} "${LINKLIB}" )
+ TARGET_LINK_LIBRARIES(${TRGTNAME} PUBLIC "${LINKLIB}" )
ENDFOREACH(LINKLIB)
ENDMACRO(LINK_EXTERNAL TRGTNAME)
@@ -179,7 +179,7 @@ MACRO(SETUP_LINK_LIBRARIES)
ENDIF(TARGET_LIBRARIES_VARS)
FOREACH(LINKLIB ${TARGET_EXTERNAL_LIBRARIES})
- TARGET_LINK_LIBRARIES(${TARGET_TARGETNAME} ${LINKLIB})
+ TARGET_LINK_LIBRARIES(${TARGET_TARGETNAME} PUBLIC ${LINKLIB})
ENDFOREACH(LINKLIB)
ENDMACRO(SETUP_LINK_LIBRARIES)
diff --git a/src/applications/osgearth_viewerIOS/CMakeLists.txt b/src/applications/osgearth_viewerIOS/CMakeLists.txt
index e66fd25c7..9db76784e 100644
--- a/src/applications/osgearth_viewerIOS/CMakeLists.txt
+++ b/src/applications/osgearth_viewerIOS/CMakeLists.txt
@@ -1,7 +1,7 @@
MACRO(LINK_OSG_STATIC_PLUGINS)
FOREACH(LINKLIB ${OSG_STATIC_PLUGINS})
SET(OSG_PLUGINS_PATH "${OSG_DIR}/lib")
- TARGET_LINK_LIBRARIES(${TARGET_TARGETNAME} optimized "${OSG_PLUGINS_PATH}/lib${LINKLIB}.a" debug "${OSG_PLUGINS_PATH}/lib${LINKLIB}${CMAKE_DEBUG_POSTFIX}.a")
+ TARGET_LINK_LIBRARIES(${TARGET_TARGETNAME} PUBLIC optimized "${OSG_PLUGINS_PATH}/lib${LINKLIB}.a" debug "${OSG_PLUGINS_PATH}/lib${LINKLIB}${CMAKE_DEBUG_POSTFIX}.a")
ENDFOREACH(LINKLIB)
ENDMACRO(LINK_OSG_STATIC_PLUGINS)
diff --git a/src/osgEarth/CMakeLists.txt b/src/osgEarth/CMakeLists.txt
index e320eb340..cd711a927 100644
--- a/src/osgEarth/CMakeLists.txt
+++ b/src/osgEarth/CMakeLists.txt
@@ -943,7 +943,7 @@ IF(Protobuf_FOUND AND Protobuf_PROTOC_EXECUTABLE)
ADD_DEFINITIONS(-DPROTOBUF_USE_DLLS)
ENDIF()
- LINK_WITH_VARIABLES(${LIB_NAME} Protobuf_LIBRARIES)
+ TARGET_LINK_LIBRARIES(${LIB_NAME} PUBLIC protobuf::libprotobuf)
ENDIF()
# ESRI FileGeodatabase?

View File

@ -1,16 +1,16 @@
diff --git a/src/osgEarthDrivers/CMakeLists.txt b/src/osgEarthDrivers/CMakeLists.txt
index 79acbe9c4..89e28b141 100644
index dd54d0ae8..37b2fbd83 100644
--- a/src/osgEarthDrivers/CMakeLists.txt
+++ b/src/osgEarthDrivers/CMakeLists.txt
@@ -31,7 +31,6 @@ add_subdirectory(earth)
@@ -19,7 +19,6 @@ add_subdirectory(earth)
add_subdirectory(engine_rex)
add_subdirectory(featurefilter_intersect)
add_subdirectory(featurefilter_join)
-add_subdirectory(gltf)
add_subdirectory(kml)
add_subdirectory(mapinspector)
add_subdirectory(monitor)
@@ -61,5 +60,4 @@ endif()
add_subdirectory(script_engine_duktape)
add_subdirectory(sky_gl)
@@ -45,5 +44,4 @@ add_subdirectory(cache_rocksdb)
IF(NOT APPLE AND NOT ANDROID)
add_subdirectory(fastdxt)

View File

@ -1,13 +0,0 @@
diff --git a/CMakeModules/OsgEarthMacroUtils.cmake b/CMakeModules/OsgEarthMacroUtils.cmake
index 6e0eb46..12388c4 100644
--- a/CMakeModules/OsgEarthMacroUtils.cmake
+++ b/CMakeModules/OsgEarthMacroUtils.cmake
@@ -364,8 +364,6 @@ MACRO(SETUP_EXE IS_COMMANDLINE_APP)
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PROJECT_LABEL "${TARGET_LABEL}")
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES OUTPUT_NAME ${TARGET_NAME})
- SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES DEBUG_OUTPUT_NAME "${TARGET_NAME}${CMAKE_DEBUG_POSTFIX}")
- SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES RELEASE_OUTPUT_NAME "${TARGET_NAME}${CMAKE_RELEASE_POSTFIX}")
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES RELWITHDEBINFO_OUTPUT_NAME "${TARGET_NAME}${CMAKE_RELWITHDEBINFO_POSTFIX}")
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES MINSIZEREL_OUTPUT_NAME "${TARGET_NAME}${CMAKE_MINSIZEREL_POSTFIX}")

View File

@ -1,11 +1,10 @@
{
"name": "osgearth",
"version": "3.4",
"port-version": 3,
"version": "3.7",
"description": "osgEarth - Dynamic map generation toolkit for OpenSceneGraph Copyright 2021 Pelican Mapping.",
"homepage": "https://github.com/gwaldron/osgearth",
"license": "LGPL-3.0-or-later",
"supports": "!(arm | x86 | wasm32 | xbox | uwp)",
"supports": "!(arm | x86 | wasm32 | xbox)",
"dependencies": [
"basisu",
"blosc",
@ -14,7 +13,6 @@
"geos",
"glew",
"libwebp",
"libzip",
"opengl",
{
"name": "osg",

View File

@ -6785,8 +6785,8 @@
"port-version": 3
},
"osgearth": {
"baseline": "3.4",
"port-version": 3
"baseline": "3.7",
"port-version": 0
},
"osmanip": {
"baseline": "4.6.1",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "1e1ce5962bfd4e49b5609952197378fcf89e1ab3",
"version": "3.7",
"port-version": 0
},
{
"git-tree": "3429fc472870b99752ea2dc1fe8b7df7f4ebedaf",
"version": "3.4",