diff options
| author | Alexander Neumann <30894796+Neumann-A@users.noreply.github.com> | 2021-01-12 01:12:01 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-11 16:12:01 -0800 |
| commit | 9c63f97fa1d4915a7dfc5f32d5cdb6ee8fe9bf8b (patch) | |
| tree | a8d4c13f0367d95d68c0c8325d851f5b23605f82 /scripts | |
| parent | c7e96f2a5b73b3278b004aa88abec2f8ebfb43b5 (diff) | |
| download | vcpkg-9c63f97fa1d4915a7dfc5f32d5cdb6ee8fe9bf8b.tar.gz vcpkg-9c63f97fa1d4915a7dfc5f32d5cdb6ee8fe9bf8b.zip | |
[mesa] new port (#14640)
* [mesa] new port
* make mesa build more.
* more fine tuning
* fix x86
* add supports.
* comment about EGL feature.
* apply suggestion from CR.
added opengl feature.
error on disabled shared glapi if multiple GL APIs are selected.
* fix boolean option
* make sharedgl-api=true the hardcoded default
* add suggestion from CR
* add mesa:x64-windows-static=fail to ci.baseline.txt due to static crt and parts being a dynamic library.
* apply CR sugesstion
Co-authored-by: PhoebeHui <20694052+PhoebeHui@users.noreply.github.com>
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/ci.baseline.txt | 5 | ||||
| -rw-r--r-- | scripts/cmake/vcpkg_configure_meson.cmake | 48 |
2 files changed, 35 insertions, 18 deletions
diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 5e0a90ea6..77bec59ea 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -894,6 +894,11 @@ memorymodule:arm-uwp=fail memorymodule:x64-linux=fail memorymodule:x64-osx=fail memorymodule:x64-uwp=fail +# Due to static crt. +mesa:x64-windows-static=fail +# Missing dependent libraries. +mesa:x64-linux=fail +mesa:x64-osx=fail meschach:arm-uwp=fail meschach:x64-linux=fail meschach:x64-osx=fail diff --git a/scripts/cmake/vcpkg_configure_meson.cmake b/scripts/cmake/vcpkg_configure_meson.cmake index 212bcf076..0bc181c41 100644 --- a/scripts/cmake/vcpkg_configure_meson.cmake +++ b/scripts/cmake/vcpkg_configure_meson.cmake @@ -36,7 +36,7 @@ This command supplies many common arguments to Meson. To see the full list, exam * [libepoxy](https://github.com/Microsoft/vcpkg/blob/master/ports/libepoxy/portfile.cmake) #]===] -function(vcpkg_internal_meson_generate_native_file) #https://mesonbuild.com/Native-environments.html +function(vcpkg_internal_meson_generate_native_file _additional_binaries) #https://mesonbuild.com/Native-environments.html set(NATIVE "[binaries]\n") #set(proglist AR RANLIB STRIP NM OBJDUMP DLLTOOL MT) if(VCPKG_TARGET_IS_WINDOWS) @@ -63,6 +63,10 @@ function(vcpkg_internal_meson_generate_native_file) #https://mesonbuild.com/Nati string(APPEND NATIVE "cpp_ld = '${VCPKG_DETECTED_CMAKE_LINKER}'\n") endif() string(APPEND NATIVE "cmake = '${CMAKE_COMMAND}'\n") + foreach(_binary IN LISTS ${_additional_binaries}) + string(APPEND NATIVE "${_binary}\n") + endforeach() + string(APPEND NATIVE "[built-in options]\n") #https://mesonbuild.com/Builtin-options.html if(VCPKG_DETECTED_CMAKE_C_COMPILER MATCHES "cl.exe") string(APPEND NATIVE "cpp_eh='none'\n") # To make sure meson is not adding eh flags by itself using msvc @@ -154,6 +158,7 @@ function(vcpkg_internal_meson_generate_native_file_config _config) #https://meso string(APPEND NATIVE_${_config} "VCPKG_TARGET_TRIPLET = '${TARGET_TRIPLET}'\n") string(APPEND NATIVE_${_config} "VCPKG_CHAINLOAD_TOOLCHAIN_FILE = '${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}'\n") + string(APPEND NATIVE_${_config} "VCPKG_CRT_LINKAGE = '${VCPKG_CRT_LINKAGE}'\n") string(APPEND NATIVE_${_config} "[built-in options]\n") if(VCPKG_TARGET_IS_WINDOWS) @@ -173,7 +178,7 @@ function(vcpkg_internal_meson_generate_native_file_config _config) #https://meso file(WRITE "${_file}" "${NATIVE_${_config}}") endfunction() -function(vcpkg_internal_meson_generate_cross_file) #https://mesonbuild.com/Cross-compilation.html +function(vcpkg_internal_meson_generate_cross_file _additional_binaries) #https://mesonbuild.com/Cross-compilation.html if(CMAKE_HOST_WIN32) if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) set(BUILD_ARCH $ENV{PROCESSOR_ARCHITEW6432}) @@ -239,6 +244,10 @@ function(vcpkg_internal_meson_generate_cross_file) #https://mesonbuild.com/Cross string(APPEND CROSS "c_ld = '${VCPKG_DETECTED_CMAKE_LINKER}'\n") string(APPEND CROSS "cpp_ld = '${VCPKG_DETECTED_CMAKE_LINKER}'\n") endif() + foreach(_binary IN LISTS ${_additional_binaries}) + string(APPEND CROSS "${_binary}\n") + endforeach() + string(APPEND CROSS "[properties]\n") string(APPEND CROSS "skip_sanity_check = true\n") string(APPEND CROSS "[host_machine]\n") @@ -333,7 +342,7 @@ endfunction() function(vcpkg_configure_meson) # parse parameters such that semicolons in options arguments to COMMAND don't get erased - cmake_parse_arguments(PARSE_ARGV 0 _vcm "" "SOURCE_PATH" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE") + cmake_parse_arguments(PARSE_ARGV 0 _vcm "" "SOURCE_PATH" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;ADDITIONAL_NATIVE_BINARIES;ADDITIONAL_CROSS_BINARIES") file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) @@ -343,10 +352,26 @@ function(vcpkg_configure_meson) debug_message("Including cmake vars from: ${_VCPKG_CMAKE_VARS_FILE}") include("${_VCPKG_CMAKE_VARS_FILE}") + vcpkg_find_acquire_program(PYTHON3) + get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) + vcpkg_add_to_path("${PYTHON3_DIR}") + list(APPEND _vcm_ADDITIONAL_NATIVE_BINARIES "python = '${PYTHON3}'") + list(APPEND _vcm_ADDITIONAL_CROSS_BINARIES "python = '${PYTHON3}'") + + vcpkg_find_acquire_program(MESON) + + get_filename_component(CMAKE_PATH ${CMAKE_COMMAND} DIRECTORY) + vcpkg_add_to_path("${CMAKE_PATH}") # Make CMake invokeable for Meson + + vcpkg_find_acquire_program(NINJA) + get_filename_component(NINJA_PATH ${NINJA} DIRECTORY) + vcpkg_add_to_path(PREPEND "${NINJA_PATH}") # Need to prepend so that meson picks up the correct ninja from vcpkg .... + # list(APPEND _vcm_ADDITIONAL_NATIVE_BINARIES "ninja = '${NINJA}'") # This does not work due to meson issues ...... + list(APPEND _vcm_OPTIONS --buildtype plain --backend ninja --wrap-mode nodownload) if(NOT VCPKG_MESON_NATIVE_FILE) - vcpkg_internal_meson_generate_native_file() + vcpkg_internal_meson_generate_native_file("_vcm_ADDITIONAL_NATIVE_BINARIES") endif() if(NOT VCPKG_MESON_NATIVE_FILE_DEBUG) vcpkg_internal_meson_generate_native_file_config(DEBUG) @@ -359,7 +384,7 @@ function(vcpkg_configure_meson) list(APPEND _vcm_OPTIONS_RELEASE --native "${VCPKG_MESON_NATIVE_FILE_RELEASE}") if(NOT VCPKG_MESON_CROSS_FILE) - vcpkg_internal_meson_generate_cross_file() + vcpkg_internal_meson_generate_cross_file("_vcm_ADDITIONAL_CROSS_BINARIES") endif() if(NOT VCPKG_MESON_CROSS_FILE_DEBUG AND VCPKG_MESON_CROSS_FILE) vcpkg_internal_meson_generate_cross_file_config(DEBUG) @@ -397,19 +422,6 @@ function(vcpkg_configure_meson) list(APPEND _vcm_OPTIONS_RELEASE "-Dcmake_prefix_path=['${CURRENT_INSTALLED_DIR}','${CURRENT_INSTALLED_DIR}/debug']") endif() - vcpkg_find_acquire_program(PYTHON3) - get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) - vcpkg_add_to_path("${PYTHON3_DIR}") - - vcpkg_find_acquire_program(MESON) - - get_filename_component(CMAKE_PATH ${CMAKE_COMMAND} DIRECTORY) - vcpkg_add_to_path("${CMAKE_PATH}") # Make CMake invokeable for Meson - - vcpkg_find_acquire_program(NINJA) - get_filename_component(NINJA_PATH ${NINJA} DIRECTORY) - vcpkg_add_to_path("${NINJA_PATH}") - vcpkg_find_acquire_program(PKGCONFIG) get_filename_component(PKGCONFIG_PATH ${PKGCONFIG} DIRECTORY) vcpkg_add_to_path("${PKGCONFIG_PATH}") |
