|
| 1 | +# This portfile is based (shamelessly copied and adapted a bit) on 'ogre' portfile. |
| 2 | + |
| 3 | +include(vcpkg_common_functions) |
| 4 | + |
| 5 | +if(NOT VCPKG_TARGET_IS_WINDOWS) |
| 6 | + message("${PORT} currently requires the following library from the system package manager:\n Xaw\n\nIt can be installed on Ubuntu systems via apt-get install libxaw7-dev") |
| 7 | +endif() |
| 8 | + |
| 9 | +vcpkg_from_github( |
| 10 | + OUT_SOURCE_PATH SOURCE_PATH |
| 11 | + REPO OGRECave/ogre-next |
| 12 | + REF 8083067c1835147de5d82015347d95c710e36bc0 |
| 13 | + SHA512 2660f739def7076b42009ba932a27532f2a20e7be8ec2674aff29116c7dcd7f2d75564d8ce07bef3dba13ece5293d604573ad4f8734f6086c1750127f52834cd |
| 14 | + HEAD_REF master |
| 15 | + PATCHES |
| 16 | + toolchain_fixes.patch |
| 17 | + rename_config_cmake.patch |
| 18 | + fix_find_package_sdl2.patch |
| 19 | +) |
| 20 | + |
| 21 | +file(REMOVE "${SOURCE_PATH}/CMake/Packages/FindOpenEXR.cmake") |
| 22 | + |
| 23 | +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) |
| 24 | + set(OGRE_STATIC ON) |
| 25 | +else() |
| 26 | + set(OGRE_STATIC OFF) |
| 27 | +endif() |
| 28 | + |
| 29 | +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS |
| 30 | + d3d9 OGRE_BUILD_RENDERSYSTEM_D3D9 |
| 31 | + java OGRE_BUILD_COMPONENT_JAVA |
| 32 | + python OGRE_BUILD_COMPONENT_PYTHON |
| 33 | + csharp OGRE_BUILD_COMPONENT_CSHARP |
| 34 | +) |
| 35 | + |
| 36 | +vcpkg_configure_cmake( |
| 37 | + SOURCE_PATH ${SOURCE_PATH} |
| 38 | + PREFER_NINJA |
| 39 | + OPTIONS |
| 40 | + -DOGRE_BUILD_DEPENDENCIES=OFF |
| 41 | + -DOGRE_BUILD_SAMPLES=OFF |
| 42 | + -DOGRE_BUILD_TESTS=OFF |
| 43 | + -DOGRE_BUILD_TOOLS=OFF |
| 44 | + -DOGRE_BUILD_MSVC_MP=ON |
| 45 | + -DOGRE_BUILD_MSVC_ZM=ON |
| 46 | + -DOGRE_INSTALL_DEPENDENCIES=OFF |
| 47 | + -DOGRE_INSTALL_DOCS=OFF |
| 48 | + -DOGRE_INSTALL_PDB=OFF |
| 49 | + -DOGRE_INSTALL_SAMPLES=OFF |
| 50 | + -DOGRE_INSTALL_TOOLS=OFF |
| 51 | + -DOGRE_INSTALL_CMAKE=ON |
| 52 | + -DOGRE_INSTALL_VSPROPS=OFF |
| 53 | + -DOGRE_STATIC=${OGRE_STATIC} |
| 54 | + -DOGRE_CONFIG_THREAD_PROVIDER=std |
| 55 | + -DOGRE_BUILD_RENDERSYSTEM_D3D11=ON |
| 56 | + -DOGRE_BUILD_RENDERSYSTEM_GL=ON |
| 57 | + -DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=ON |
| 58 | + -DOGRE_BUILD_RENDERSYSTEM_GLES=OFF |
| 59 | + -DOGRE_BUILD_RENDERSYSTEM_GLES2=OFF |
| 60 | +# Optional stuff |
| 61 | + ${FEATURE_OPTIONS} |
| 62 | +# vcpkg specific stuff |
| 63 | + -DOGRE_CMAKE_DIR=share/ogre-next |
| 64 | +) |
| 65 | + |
| 66 | +vcpkg_install_cmake() |
| 67 | +vcpkg_fixup_cmake_targets() |
| 68 | + |
| 69 | +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) |
| 70 | +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) |
| 71 | + |
| 72 | +file(GLOB REL_CFGS ${CURRENT_PACKAGES_DIR}/bin/*.cfg) |
| 73 | +if(REL_CFGS) |
| 74 | + file(COPY ${REL_CFGS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) |
| 75 | + file(REMOVE ${REL_CFGS}) |
| 76 | +endif() |
| 77 | + |
| 78 | +file(GLOB DBG_CFGS ${CURRENT_PACKAGES_DIR}/debug/bin/*.cfg) |
| 79 | +if(DBG_CFGS) |
| 80 | + file(COPY ${DBG_CFGS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) |
| 81 | + file(REMOVE ${DBG_CFGS}) |
| 82 | +endif() |
| 83 | + |
| 84 | +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") |
| 85 | + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) |
| 86 | +endif() |
| 87 | + |
| 88 | +#Remove OgreMain*.lib from lib/ folder, because autolink would complain, since it defines a main symbol |
| 89 | +#manual-link subfolder is here to the rescue! |
| 90 | +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") |
| 91 | + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "Release") |
| 92 | + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link) |
| 93 | + if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") |
| 94 | + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/OgreMain.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/OgreMain.lib) |
| 95 | + else() |
| 96 | + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/OgreMainStatic.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/OgreMainStatic.lib) |
| 97 | + endif() |
| 98 | + endif() |
| 99 | + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "Debug") |
| 100 | + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) |
| 101 | + if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") |
| 102 | + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/OgreMain_d.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/OgreMain_d.lib) |
| 103 | + else() |
| 104 | + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/OgreMainStatic_d.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/OgreMainStatic_d.lib) |
| 105 | + endif() |
| 106 | + endif() |
| 107 | + |
| 108 | + file(GLOB SHARE_FILES ${CURRENT_PACKAGES_DIR}/share/ogre-next/*.cmake) |
| 109 | + foreach(SHARE_FILE ${SHARE_FILES}) |
| 110 | + file(READ "${SHARE_FILE}" _contents) |
| 111 | + string(REPLACE "lib/OgreMain" "lib/manual-link/OgreMain" _contents "${_contents}") |
| 112 | + file(WRITE "${SHARE_FILE}" "${_contents}") |
| 113 | + endforeach() |
| 114 | +endif() |
| 115 | + |
| 116 | +# Handle copyright |
| 117 | +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/ogre-next RENAME copyright) |
| 118 | + |
| 119 | +vcpkg_copy_pdbs() |
0 commit comments