diff options
| author | Silvio <silvio.traversaro@iit.it> | 2016-12-18 23:00:35 +0100 |
|---|---|---|
| committer | Silvio <silvio.traversaro@iit.it> | 2016-12-18 23:00:35 +0100 |
| commit | effbdfbb91e3672e41cfc442ce0244872b1fad8c (patch) | |
| tree | cfdc0e6b3a622d8e73478aadee13ab074a5a59ee | |
| parent | 835693ce97f271c0213f65c1c782e8df84cfb409 (diff) | |
| download | vcpkg-effbdfbb91e3672e41cfc442ce0244872b1fad8c.tar.gz vcpkg-effbdfbb91e3672e41cfc442ce0244872b1fad8c.zip | |
Add ogre port
| -rw-r--r-- | ports/ogre/0001-use-vcpkg-freeimage.patch | 17 | ||||
| -rw-r--r-- | ports/ogre/0002-ogre-cmake-dir-as-option.patch | 19 | ||||
| -rw-r--r-- | ports/ogre/0003-use-flat-installation.patch | 41 | ||||
| -rw-r--r-- | ports/ogre/CONTROL | 4 | ||||
| -rw-r--r-- | ports/ogre/OGREConfig.cmake | 37 | ||||
| -rw-r--r-- | ports/ogre/portfile.cmake | 60 |
6 files changed, 178 insertions, 0 deletions
diff --git a/ports/ogre/0001-use-vcpkg-freeimage.patch b/ports/ogre/0001-use-vcpkg-freeimage.patch new file mode 100644 index 000000000..0266e5e89 --- /dev/null +++ b/ports/ogre/0001-use-vcpkg-freeimage.patch @@ -0,0 +1,17 @@ +diff --git a/OgreMain/CMakeLists.txt b/OgreMain/CMakeLists.txt +index 6a43378..22f950e 100644 +--- a/OgreMain/CMakeLists.txt ++++ b/OgreMain/CMakeLists.txt +@@ -220,7 +220,11 @@ endif () + list(APPEND HEADER_FILES ${THREAD_HEADER_FILES}) + + # Add needed definitions and nedmalloc include dir +-add_definitions(-DOGRE_NONCLIENT_BUILD -DFREEIMAGE_LIB -D_MT -D_USRDLL) ++# vcpkg specific patch: we removed -DFREEIMAGE_LIB ++# from the defines, because vcpkg's freeimage can ++# be both static or dynamic, and FREEIMAGE_LIB ++# remove all the symbol exporting declaration from FreeImage.h ++add_definitions(-DOGRE_NONCLIENT_BUILD -D_MT -D_USRDLL) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/nedmalloc) + + set(LIBRARIES ${PLATFORM_LIBS}) diff --git a/ports/ogre/0002-ogre-cmake-dir-as-option.patch b/ports/ogre/0002-ogre-cmake-dir-as-option.patch new file mode 100644 index 000000000..c5d75e20c --- /dev/null +++ b/ports/ogre/0002-ogre-cmake-dir-as-option.patch @@ -0,0 +1,19 @@ +diff --git a/CMake/CMakeLists.txt b/CMake/CMakeLists.txt +index 4c496b7..feb4017 100644 +--- a/CMake/CMakeLists.txt ++++ b/CMake/CMakeLists.txt +@@ -14,10 +14,12 @@ + ############################################################# + + if(WIN32 OR APPLE) +- set(OGRE_CMAKE_DIR "CMake") ++ set(OGRE_DEFAULT_CMAKE_DIR "CMake") + else() +- set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake") ++ set(OGRE_DEFAULT_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake") + endif() ++set(OGRE_CMAKE_DIR ${OGRE_DEFAULT_CMAKE_DIR} CACHE STRING "Install directory for CMake files.") ++mark_as_advanced(OGRE_DEFAULT_CMAKE_DIR) + + set(INST_FILES + Packages/FindOIS.cmake diff --git a/ports/ogre/0003-use-flat-installation.patch b/ports/ogre/0003-use-flat-installation.patch new file mode 100644 index 000000000..c5a382c1f --- /dev/null +++ b/ports/ogre/0003-use-flat-installation.patch @@ -0,0 +1,41 @@ +diff --git a/CMake/Utils/OgreConfigTargets.cmake b/CMake/Utils/OgreConfigTargets.cmake +index c6b3b40..2da7ebf 100644 +--- a/CMake/Utils/OgreConfigTargets.cmake ++++ b/CMake/Utils/OgreConfigTargets.cmake +@@ -41,15 +41,28 @@ if (NOT OGRE_RUNTIME_OUTPUT) + set(OGRE_RUNTIME_OUTPUT ${OGRE_BINARY_DIR}/bin) + endif () + ++option(OGRE_NO_INSTALLATION_SUFFIXES_ON_WIN32 "Do not install in configuration-specific directories in Windows" FALSE) ++ + if (WIN32) +- set(OGRE_RELEASE_PATH "/Release") +- set(OGRE_RELWDBG_PATH "/RelWithDebInfo") +- set(OGRE_MINSIZE_PATH "/MinSizeRel") +- set(OGRE_DEBUG_PATH "/Debug") +- set(OGRE_LIB_RELEASE_PATH "/Release") +- set(OGRE_LIB_RELWDBG_PATH "/RelWithDebInfo") +- set(OGRE_LIB_MINSIZE_PATH "/MinSizeRel") +- set(OGRE_LIB_DEBUG_PATH "/Debug") ++ if (OGRE_NO_INSTALLATION_SUFFIXES_ON_WIN32) ++ set(OGRE_RELEASE_PATH "") ++ set(OGRE_RELWDBG_PATH "") ++ set(OGRE_MINSIZE_PATH "") ++ set(OGRE_DEBUG_PATH "") ++ set(OGRE_LIB_RELEASE_PATH "") ++ set(OGRE_LIB_RELWDBG_PATH "") ++ set(OGRE_LIB_MINSIZE_PATH "") ++ set(OGRE_LIB_DEBUG_PATH "/") ++ else () ++ set(OGRE_RELEASE_PATH "/Release") ++ set(OGRE_RELWDBG_PATH "/RelWithDebInfo") ++ set(OGRE_MINSIZE_PATH "/MinSizeRel") ++ set(OGRE_DEBUG_PATH "/Debug") ++ set(OGRE_LIB_RELEASE_PATH "/Release") ++ set(OGRE_LIB_RELWDBG_PATH "/RelWithDebInfo") ++ set(OGRE_LIB_MINSIZE_PATH "/MinSizeRel") ++ set(OGRE_LIB_DEBUG_PATH "/Debug") ++ endif () + set(OGRE_PLUGIN_PATH "/opt") + set(OGRE_SAMPLE_PATH "/opt/samples") + elseif (UNIX) diff --git a/ports/ogre/CONTROL b/ports/ogre/CONTROL new file mode 100644 index 000000000..40d9e2416 --- /dev/null +++ b/ports/ogre/CONTROL @@ -0,0 +1,4 @@ +Source: ogre +Version: 1.9.0 +Build-Depends: freeimage, freetype, zlib, zziplib +Description: 3D Object-Oriented Graphics Rendering Engine diff --git a/ports/ogre/OGREConfig.cmake b/ports/ogre/OGREConfig.cmake new file mode 100644 index 000000000..a20544431 --- /dev/null +++ b/ports/ogre/OGREConfig.cmake @@ -0,0 +1,37 @@ +#.rst: +# OGREConfig +# ------------ +# +# Dummy OGREConfig to simplify use of OGRE-provided FindOGRE module. +# +# This file is provided as part of the vcpkg port of OGRE . +# It is meant to be found automatically by find_package(OGRE), +# but then offloads all the real work to the FindOGRE module by temporarly +# adding its directory to CMAKE_MODULE_PATH +# +# See the FindOGRE module to see the defined variables:: +# + +# Temporarly add the directory in which OGREConfig.cmake is contained to +# get access to the FindOGRE module +get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +set(ORIGINAL_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) +list(APPEND CMAKE_MODULE_PATH ${SELF_DIR}) +find_package(OGRE MODULE) + +# Leave CMAKE_MODULE_PATH as we found it +set(CMAKE_MODULE_PATH ${ORIGINAL_CMAKE_MODULE_PATH}) + +# Handle components +# imported from https://github.com/Kitware/CMake/blob/v3.7.1/Modules/CMakePackageConfigHelpers.cmake#L300 +macro(check_required_components _NAME) + foreach(comp ${${_NAME}_FIND_COMPONENTS}) + if(NOT ${_NAME}_${comp}_FOUND) + if(${_NAME}_FIND_REQUIRED_${comp}) + set(${_NAME}_FOUND FALSE) + endif() + endif() + endforeach() +endmacro() + +check_required_components(OGRE)
\ No newline at end of file diff --git a/ports/ogre/portfile.cmake b/ports/ogre/portfile.cmake new file mode 100644 index 000000000..a0989a4a2 --- /dev/null +++ b/ports/ogre/portfile.cmake @@ -0,0 +1,60 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sinbad-ogre-dd30349ea667) +vcpkg_download_distfile(ARCHIVE + URLS "https://bitbucket.org/sinbad/ogre/get/v1-9-0.zip" + FILENAME "ogre-v1-9-0.zip" + SHA512 de7315a2450ecf0d9073e6a8f0c54737e041016f7ad820556d10701c7d23eefab9d3473476a8e95447c30ab21518b8e4cfb0271db72494ea67a3dea284c9a3d3 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-use-vcpkg-freeimage.patch" + "${CMAKE_CURRENT_LIST_DIR}/0002-ogre-cmake-dir-as-option.patch" + "${CMAKE_CURRENT_LIST_DIR}/0003-use-flat-installation.patch" +) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + set(OGRE_STATIC ON) +else() + set(OGRE_STATIC OFF) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS -DOGRE_USE_BOOST:BOOL=OFF + -DOGRE_BUILD_RENDERSYSTEM_D3D9:BOOL=OFF + -DOGRE_INSTALL_DEPENDENCIES:BOOL=OFF + -DOGRE_COPY_DEPENDENCIES:BOOL=OFF + -DOGRE_BUILD_TOOLS:BOOL=OFF + -DOGRE_CMAKE_DIR:STRING=share/ogre + -DOGRE_STATIC:BOOL=${OGRE_STATIC} + -DOGRE_INSTALL_SAMPLES:BOOL=OFF + -DOGRE_INSTALL_TOOLS:BOOL=OFF + # We disable this option because it is broken and we rely on vcpkg_copy_pdbs + -DOGRE_INSTALL_PDB:BOOL=OFF + -DOGRE_BUILD_DOCS:BOOL=OFF + -DOGRE_INSTALL_DOCS:BOOL=OFF + -DOGRE_INSTALL_SAMPLES_SOURCE:BOOL=OFF + -DOGRE_NO_INSTALLATION_SUFFIXES_ON_WIN32:BOOL=ON +) + +vcpkg_install_cmake() + +# Add a OGREConfig.cmake to simplify the process of finding vcpkg OGRE +file(COPY ${CMAKE_CURRENT_LIST_DIR}/OGREConfig.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/ogre) + +# Remove debug includes +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Remove debug CMake files +# Note that at the moment OGRE do not export imported targets, +# so we do not need to copy the debug imported targets in the +# release CMake path +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) + +# Handle copyright +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/ogre) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/ogre/COPYING ${CURRENT_PACKAGES_DIR}/share/ogre/copyright) + +vcpkg_copy_pdbs()
\ No newline at end of file |
