|
| 1 | +set(VCPKG_POLICY_DLLS_WITHOUT_EXPORTS enabled) |
| 2 | + |
| 3 | +set(OSG_VER 3.6.5) |
| 4 | + |
| 5 | +vcpkg_from_github( |
| 6 | + OUT_SOURCE_PATH SOURCE_PATH |
| 7 | + REPO openmw/osg |
| 8 | + REF 673f30ad3820faf2a5e901ffe403b5246b8918fe |
| 9 | + SHA512 a75c5092f653d56ef216fd38eb84793816654bb16423bbb3b82c97d9ece98c72fcd8e30f109e5fa4563423c1b113ca1d790c5ab30803f6bfee48662d1e6ac9e8 |
| 10 | + HEAD_REF 3.6 |
| 11 | +) |
| 12 | + |
| 13 | +file(REMOVE |
| 14 | + "${SOURCE_PATH}/CMakeModules/FindFontconfig.cmake" |
| 15 | + "${SOURCE_PATH}/CMakeModules/FindFreetype.cmake" |
| 16 | + "${SOURCE_PATH}/CMakeModules/Findilmbase.cmake" |
| 17 | + "${SOURCE_PATH}/CMakeModules/FindOpenEXR.cmake" |
| 18 | + "${SOURCE_PATH}/CMakeModules/FindSDL2.cmake" |
| 19 | +) |
| 20 | + |
| 21 | +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" OSG_DYNAMIC) |
| 22 | + |
| 23 | +set(OPTIONS "") |
| 24 | + |
| 25 | +# Skip try_run checks |
| 26 | +if(VCPKG_TARGET_IS_MINGW) |
| 27 | + list(APPEND OPTIONS -D_OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED=0 -D_OPENTHREADS_ATOMIC_USE_GCC_BUILTINS=1) |
| 28 | +elseif(VCPKG_TARGET_IS_WINDOWS) |
| 29 | + list(APPEND OPTIONS -D_OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED=1 -D_OPENTHREADS_ATOMIC_USE_GCC_BUILTINS=0) |
| 30 | +elseif(VCPKG_TARGET_IS_IOS) |
| 31 | + # handled by osg |
| 32 | +elseif(VCPKG_CROSSCOMPILING) |
| 33 | + message(WARNING "Atomics detection may fail for cross builds. You can set osg cmake variables in a custom triplet.") |
| 34 | +endif() |
| 35 | + |
| 36 | +# The package osg can be configured to use different OpenGL profiles via a custom triplet file: |
| 37 | +# Possible values are GLCORE, GL2, GL3, GLES1, GLES2, GLES3, and GLES2+GLES3 |
| 38 | +if(NOT DEFINED osg_OPENGL_PROFILE) |
| 39 | + set(osg_OPENGL_PROFILE "GL2") |
| 40 | +endif() |
| 41 | + |
| 42 | +vcpkg_cmake_configure( |
| 43 | + SOURCE_PATH "${SOURCE_PATH}" |
| 44 | + OPTIONS |
| 45 | + -DDYNAMIC_OPENSCENEGRAPH=${OSG_DYNAMIC} |
| 46 | + -DDYNAMIC_OPENTHREADS=${OSG_DYNAMIC} |
| 47 | + -DOSG_MSVC_VERSIONED_DLL=OFF |
| 48 | + -DOSG_DETERMINE_WIN_VERSION=OFF |
| 49 | + -DOSG_FIND_3RD_PARTY_DEPS=OFF |
| 50 | + -DOPENGL_PROFILE=${osg_OPENGL_PROFILE} |
| 51 | + -DBUILD_DASHBOARD_REPORTS=OFF |
| 52 | + -DCMAKE_CXX_STANDARD=11 |
| 53 | + -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=ON |
| 54 | + -DBUILD_OSG_PLUGINS_BY_DEFAULT=OFF |
| 55 | + -DBUILD_OSG_PLUGIN_OSG=ON |
| 56 | + -DBUILD_OSG_PLUGIN_DDS=ON |
| 57 | + -DBUILD_OSG_PLUGIN_TGA=ON |
| 58 | + -DBUILD_OSG_PLUGIN_BMP=ON |
| 59 | + -DBUILD_OSG_PLUGIN_JPEG=ON |
| 60 | + -DBUILD_OSG_PLUGIN_PNG=ON |
| 61 | + -DBUILD_OSG_PLUGIN_FREETYPE=ON |
| 62 | + -DBUILD_OSG_PLUGIN_DAE=ON |
| 63 | + -DBUILD_OSG_PLUGIN_KTX=ON |
| 64 | + -DBUILD_OSG_DEPRECATED_SERIALIZERS=OFF |
| 65 | + -DBUILD_OSG_APPLICATIONS=OFF |
| 66 | + -DBUILD_OSG_EXAMPLES=OFF |
| 67 | + -DBUILD_DOCUMENTATION=OFF |
| 68 | + ${OPTIONS} |
| 69 | + MAYBE_UNUSED_VARIABLES |
| 70 | + OSG_DETERMINE_WIN_VERSION |
| 71 | +) |
| 72 | +vcpkg_cmake_install() |
| 73 | +vcpkg_copy_pdbs() |
| 74 | + |
| 75 | +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") |
| 76 | + file(APPEND "${CURRENT_PACKAGES_DIR}/include/osg/Config" "#ifndef OSG_LIBRARY_STATIC\n#define OSG_LIBRARY_STATIC 1\n#endif\n") |
| 77 | +endif() |
| 78 | + |
| 79 | +file(REMOVE_RECURSE |
| 80 | + "${CURRENT_PACKAGES_DIR}/debug/include" |
| 81 | + "${CURRENT_PACKAGES_DIR}/debug/share" |
| 82 | +) |
| 83 | + |
| 84 | +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/openscenegraph.pc" "\\\n" " ") |
| 85 | +if(NOT VCPKG_BUILD_TYPE) |
| 86 | + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/openscenegraph.pc" "\\\n" " ") |
| 87 | +endif() |
| 88 | +vcpkg_fixup_pkgconfig() |
| 89 | + |
| 90 | +file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") |
| 91 | +file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) |
0 commit comments