Skip to content

Commit fea1b49

Browse files
committed
Revert ":construction: Replace vcpkg with conan"
This reverts commit 104cdb6. Conflicts: CMakeLists.txt conanfile.py
1 parent a9cf3a9 commit fea1b49

7 files changed

+1608
-2
lines changed

CMakeLists.txt

+97-2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,38 @@ cmake_minimum_required(VERSION 3.14)
1919
SET(CMAKE_NINJA_FORCE_RESPONSE_FILE 1 CACHE INTERNAL "")
2020

2121
include(SelectLibraryConfigurations)
22+
# Passing of variables to vcpkg
23+
#
24+
# vcpkg runs cmake scripts in an isolated environment, see this for details:
25+
# https://github.com/Microsoft/vcpkg/issues/3712
26+
#
27+
# Here's how this works and how we work around this issue:
28+
#
29+
# 1. This file (CMakeLists.txt) runs first and is authoritative. It is the one
30+
# that reads the environment, sets variables and sets a default value.
31+
# 2. It writes the contents of the variables to
32+
# $CMAKE_CURRENT_BINARY_DIR/_env/$VARNAME
33+
# 3. hifi_vcpkg.py takes the _env directory, and copies it to the vcpkg dir.
34+
# This solves the issue of CMakeLists.txt not knowing where the vcpkg dir is.
35+
# 4. cmake/ports/*/portfile.cmake does know where the vcpkg dir is, and can
36+
# read the _env that was copied there to obtain the variable's name.
37+
#
38+
# To ensure no old data could be accidentally read, the _env directories are
39+
# deleted on each execution and fully recreated.
40+
41+
# Ensure nothing is kept from any previous run
42+
file(REMOVE_RECURSE "${CMAKE_CURRENT_BINARY_DIR}/_env")
43+
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/_env")
44+
45+
# Base URL for externally downloaded files
46+
set(EXTERNAL_BUILD_ASSETS "https://build-deps.overte.org")
47+
48+
if( DEFINED ENV{EXTERNAL_BUILD_ASSETS} )
49+
set(EXTERNAL_BUILD_ASSETS "$ENV{EXTERNAL_BUILD_ASSETS}")
50+
endif()
51+
52+
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/_env/EXTERNAL_BUILD_ASSETS.txt" "${EXTERNAL_BUILD_ASSETS}")
53+
MESSAGE(STATUS "EXTERNAL_BUILD_ASSETS: ${EXTERNAL_BUILD_ASSETS}")
2254

2355
# read USE_GLES enviroment variable and sets it as GLES option
2456
# TODO still gets overwritten by "use GLES on linux aarch64"
@@ -35,15 +67,25 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
3567
set(GLES_OPTION ON)
3668
endif()
3769

70+
# Will affect VCPKG dependencies
71+
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/_env/USE_GLES.txt" "${GLES_OPTION}")
72+
MESSAGE(STATUS "GLES_OPTION: ${GLES_OPTION}")
73+
74+
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/macros/TargetPython.cmake")
75+
target_python()
76+
77+
if (WIN32 AND NOT HIFI_ANDROID AND NOT (CMAKE_GENERATOR STREQUAL "Ninja"))
78+
# Force x64 toolset
79+
set(CMAKE_GENERATOR_TOOLSET "host=x64" CACHE STRING "64-bit toolset" FORCE)
80+
endif()
81+
3882
# set our OS X deployment target
3983
# (needs to be set before first project() call and before prebuild.py)
4084
# Will affect VCPKG dependencies
4185
if (APPLE)
4286
set(ENV{MACOSX_DEPLOYMENT_TARGET} 10.11)
4387
endif()
4488

45-
set(EXTERNAL_BUILD_ASSETS "https://build-deps.overte.org")
46-
4789
set(RELEASE_TYPE "$ENV{RELEASE_TYPE}")
4890
if ((NOT "${RELEASE_TYPE}" STREQUAL "PRODUCTION") AND (NOT "${RELEASE_TYPE}" STREQUAL "PR"))
4991
set(RELEASE_TYPE "DEV")
@@ -67,6 +109,8 @@ if( NOT WIN32 )
67109
set(OVERTE_OPTIMIZE_FLAGS "")
68110

69111
if(OVERTE_OPTIMIZE)
112+
113+
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/_env/OVERTE_OPTIMIZE.txt" "${OVERTE_OPTIMIZE}")
70114
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
71115
message("Clang compiler detected, adding -O3 -fPIC -g flags")
72116
set(OVERTE_OPTIMIZE_FLAGS "-O3 -fPIC -g")
@@ -92,6 +136,7 @@ if( NOT WIN32 )
92136
endif()
93137

94138
if(DEFINED OVERTE_CPU_ARCHITECTURE)
139+
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/_env/OVERTE_CPU_ARCHITECTURE.txt" "${OVERTE_CPU_ARCHITECTURE}")
95140
set(OVERTE_OPTIMIZE_FLAGS "${OVERTE_OPTIMIZE_FLAGS} ${OVERTE_CPU_ARCHITECTURE}")
96141
message("Adding CPU architecture flags: ${OVERTE_CPU_ARCHITECTURE}")
97142
MESSAGE(STATUS "OVERTE_CPU_ARCHITECTURE: ${OVERTE_CPU_ARCHITECTURE}")
@@ -156,9 +201,53 @@ if(OVERTE_WARNINGS_AS_ERRORS)
156201
endif()
157202

158203

204+
if (HIFI_ANDROID)
205+
execute_process(
206+
COMMAND ${HIFI_PYTHON_EXEC} ${CMAKE_CURRENT_SOURCE_DIR}/prebuild.py --release-type ${RELEASE_TYPE} --android ${HIFI_ANDROID_APP} --build-root ${CMAKE_BINARY_DIR}
207+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} RESULTS_VARIABLE PREBUILD_RET
208+
)
209+
else()
210+
set(VCPKG_BUILD_TYPE_PARAM "")
211+
if (VCPKG_BUILD_TYPE)
212+
set(VCPKG_BUILD_TYPE_PARAM --vcpkg-build-type ${VCPKG_BUILD_TYPE})
213+
endif()
214+
execute_process(
215+
COMMAND ${HIFI_PYTHON_EXEC} ${CMAKE_CURRENT_SOURCE_DIR}/prebuild.py --release-type ${RELEASE_TYPE} --build-root ${CMAKE_BINARY_DIR} ${VCPKG_BUILD_TYPE_PARAM}
216+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} RESULTS_VARIABLE PREBUILD_RET
217+
)
218+
endif()
219+
220+
if (PREBUILD_RET GREATER 0)
221+
message(FATAL_ERROR "prebuild.py failed with error ${PREBUILD_RET}")
222+
endif()
223+
if(NOT EXISTS "${CMAKE_BINARY_DIR}/vcpkg.cmake")
224+
message(FATAL_ERROR "vcpkg configuration missing.")
225+
endif()
226+
include("${CMAKE_BINARY_DIR}/vcpkg.cmake")
227+
228+
if (HIFI_ANDROID)
229+
set(QT_CMAKE_PREFIX_PATH "$ENV{HIFI_ANDROID_PRECOMPILED}/qt/lib/cmake")
230+
else()
231+
if ("$ENV{OVERTE_USE_SYSTEM_QT}" STREQUAL "")
232+
if(NOT EXISTS "${CMAKE_BINARY_DIR}/qt.cmake")
233+
message(FATAL_ERROR "qt configuration missing.")
234+
endif()
235+
include("${CMAKE_BINARY_DIR}/qt.cmake")
236+
message(STATUS "${CMAKE_BINARY_DIR}/qt.cmake included!")
237+
else()
238+
message(STATUS "System Qt in use, not including qt.cmake!")
239+
endif()
240+
endif()
241+
242+
option(VCPKG_APPLOCAL_DEPS OFF)
243+
159244
project(overte)
160245
include("cmake/init.cmake")
161246
include("cmake/compiler.cmake")
247+
option(VCPKG_APPLOCAL_DEPS OFF)
248+
249+
add_paths_to_fixup_libs(${VCPKG_INSTALL_ROOT}/bin)
250+
add_paths_to_fixup_libs(${VCPKG_INSTALL_ROOT}/debug/bin)
162251

163252
if (NOT DEFINED CLIENT_ONLY)
164253
set(CLIENT_ONLY 0)
@@ -335,6 +424,12 @@ endif()
335424

336425
set_packaging_parameters()
337426

427+
# Locate the required Qt build on the filesystem
428+
setup_qt()
429+
430+
if ("$ENV{OVERTE_USE_SYSTEM_QT}" STREQUAL "")
431+
list(APPEND CMAKE_PREFIX_PATH "${QT_CMAKE_PREFIX_PATH}")
432+
endif()
338433

339434
find_package( Threads )
340435

0 commit comments

Comments
 (0)