blob: f42b4c2209d54cba7f0d34a9bff40511fe11dad2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
include(vcpkg_common_functions)
set(OGRE_VERSION 1.10.9)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ogre-${OGRE_VERSION})
vcpkg_download_distfile(ARCHIVE
URLS "https://github.com/OGRECave/ogre/archive/v${OGRE_VERSION}.zip"
FILENAME "ogre-${OGRE_VERSION}.zip"
SHA512 2e68b30da6dc2e1df6575970623a14057675b069536ed0ac87faeefc8e295965ff7427c99385f29ab803b02bd5294f6886293aabdd17ec8c92f80baf53587457
)
vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
"${CMAKE_CURRENT_LIST_DIR}/001-cmake-install-dir.patch"
)
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
set(OGRE_STATIC ON)
else()
set(OGRE_STATIC OFF)
endif()
# Configure features
if("d3d9" IN_LIST FEATURES)
set(WITH_D3D9 ON)
else()
set(WITH_D3D9 OFF)
endif()
if("java" IN_LIST FEATURES)
set(WITH_JAVA ON)
else()
set(WITH_JAVA OFF)
endif()
if("python" IN_LIST FEATURES)
set(WITH_PYTHON ON)
else()
set(WITH_PYTHON OFF)
endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DOGRE_BUILD_DEPENDENCIES=OFF
-DOGRE_BUILD_SAMPLES=OFF
-DOGRE_BUILD_TESTS=OFF
-DOGRE_BUILD_TOOLS=OFF
-DOGRE_BUILD_MSVC_MP=ON
-DOGRE_BUILD_MSVC_ZM=ON
-DOGRE_INSTALL_DEPENDENCIES=OFF
-DOGRE_INSTALL_DOCS=OFF
-DOGRE_INSTALL_PDB=OFF
-DOGRE_INSTALL_SAMPLES=OFF
-DOGRE_INSTALL_TOOLS=OFF
-DOGRE_INSTALL_CMAKE=ON
-DOGRE_INSTALL_VSPROPS=OFF
-DOGRE_STATIC=${OGRE_STATIC}
-DOGRE_UNITY_BUILD=OFF
-DOGRE_USE_STD11=ON
-DOGRE_CONFIG_THREAD_PROVIDER=std
-DOGRE_NODE_STORAGE_LEGACY=OFF
-DOGRE_BUILD_RENDERSYSTEM_D3D11=ON
-DOGRE_BUILD_RENDERSYSTEM_GL=ON
-DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=ON
-DOGRE_BUILD_RENDERSYSTEM_GLES=OFF
-DOGRE_BUILD_RENDERSYSTEM_GLES2=OFF
# Optional stuff
-DOGRE_BUILD_COMPONENT_JAVA=${WITH_JAVA}
-DOGRE_BUILD_COMPONENT_PYTHON=${WITH_PYTHON}
-DOGRE_BUILD_RENDERSYSTEM_D3D9=${WITH_D3D9}
# vcpkg specific stuff
-DOGRE_CMAKE_DIR=share/ogre
)
vcpkg_install_cmake()
# Remove unwanted files
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
vcpkg_fixup_cmake_targets(CONFIG_PATH share/ogre)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(GLOB REL_CFGS ${CURRENT_PACKAGES_DIR}/bin/*.cfg)
file(COPY ${REL_CFGS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(GLOB DBG_CFGS ${CURRENT_PACKAGES_DIR}/debug/bin/*.cfg)
file(COPY ${DBG_CFGS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
file(REMOVE ${REL_CFGS} ${DBG_CFGS})
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
endif()
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link ${CURRENT_PACKAGES_DIR}/lib/manual-link)
file(GLOB MAIN_REL ${CURRENT_PACKAGES_DIR}/lib/OgreMain.lib ${CURRENT_PACKAGES_DIR}/lib/OgreMainStatic.lib)
file(COPY ${MAIN_REL} DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link)
file(GLOB MAIN_DBG ${CURRENT_PACKAGES_DIR}/debug/lib/OgreMain_d.lib ${CURRENT_PACKAGES_DIR}/debug/lib/OgreMainStatic_d.lib)
file(COPY ${MAIN_DBG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
file(REMOVE ${MAIN_REL} ${MAIN_DBG})
# Ogre installs custom cmake config files which don't follow the normal pattern.
# This normally makes them completely incompatible with multi-config generators, but with some effort it can be done.
file(READ "${CURRENT_PACKAGES_DIR}/share/ogre/OGREConfig.cmake" _contents)
string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${PACKAGE_PREFIX_DIR}" _contents "${_contents}")
string(REPLACE "SDL2main.lib" "SDL2main$<$<CONFIG:Debug>:d>.lib" _contents "${_contents}")
string(REPLACE "SDL2.lib" "SDL2$<$<CONFIG:Debug>:d>.lib" _contents "${_contents}")
string(REPLACE "\${PACKAGE_PREFIX_DIR}/lib" "\${PACKAGE_PREFIX_DIR}$<$<CONFIG:Debug>:/debug>/lib" _contents "${_contents}")
string(REPLACE "{OGRE_PREFIX_DIR}/lib" "{OGRE_PREFIX_DIR}$<$<CONFIG:Debug>:/debug>/lib" _contents "${_contents}")
string(REPLACE "\"Ogre\${COMPONENT}\"" "\"Ogre\${COMPONENT}$<$<CONFIG:Debug>:_d>\"" _contents "${_contents}")
string(REPLACE "\"Ogre\${COMPONENT}Static\"" "\"Ogre\${COMPONENT}Static$<$<CONFIG:Debug>:_d>\"" _contents "${_contents}")
string(REPLACE "\"\${TYPE}_\${COMPONENT}\"" "\"\${TYPE}_\${COMPONENT}$<$<CONFIG:Debug>:_d>\"" _contents "${_contents}")
string(REPLACE "\"\${TYPE}_\${COMPONENT}Static\"" "\"\${TYPE}_\${COMPONENT}Static$<$<CONFIG:Debug>:_d>\"" _contents "${_contents}")
string(REPLACE "\"OgreMain\"" "\"\${PACKAGE_PREFIX_DIR}/lib/manual-link/OgreMain$<$<CONFIG:Debug>:_d>.lib\"" _contents "${_contents}")
string(REPLACE "\"OgreMainStatic\"" "\"\${PACKAGE_PREFIX_DIR}/lib/manual-link/OgreMainStatic$<$<CONFIG:Debug>:_d>.lib\"" _contents "${_contents}")
file(WRITE "${CURRENT_PACKAGES_DIR}/share/ogre/OGREConfig.cmake" "${_contents}")
# Handle copyright
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/ogre RENAME copyright)
vcpkg_copy_pdbs()
|