From nobody Fri Aug 19 19:40:40 2022 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4M8XD83Mbxz4YyTk; Fri, 19 Aug 2022 19:40:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4M8XD83C0wz3Zfn; Fri, 19 Aug 2022 19:40:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1660938040; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BshL/Q1Hh6ANdbUt3f6/1HN5N5g2l0eGqU8jFkLNcU0=; b=uSaQ5izsN0PjWAhCMRt9glFj6GmUnNj2W2fM+ZG07EhKTJ/uWaeXE8xrCi6dhpTYscX/HO 5I3mmebmOS3DlBtlW6Hz330Y8FPto6o9mUndGKkDhjZjhLhyeF8QyhngdJqKZJHQVcZLsK 28BSiLQlRW3qGsax3IkWgJKSE9FPcTxbESgl3yI+FqCMzVnZVk1o8mZfKmQ9lQUb62ZQ+g zvTBZ9LV0YGBfZRZEtmBMZmDw1phN3fw/oSalfBdRFINTgk6ont1YIRq5jobm/onGjQr7S HNfq/Pu4SEhIUb++U3WewcG4xYrwS/kLEnmww8vVXf0NWsfDlovATpejBl7/LQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4M8XD82J62z14T4; Fri, 19 Aug 2022 19:40:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 27JJeewD037816; Fri, 19 Aug 2022 19:40:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 27JJee0q037815; Fri, 19 Aug 2022 19:40:40 GMT (envelope-from git) Date: Fri, 19 Aug 2022 19:40:40 GMT Message-Id: <202208191940.27JJee0q037815@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Yuri Victorovich Subject: git: d5e52eb269e3 - main - graphics/filament: New port: Real-time physically based rendering engine List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: yuri X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d5e52eb269e3059e37b328ea962be4c2200d1523 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1660938040; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BshL/Q1Hh6ANdbUt3f6/1HN5N5g2l0eGqU8jFkLNcU0=; b=T/hwCAmjRIVjpIH7Rt65Pal0d8OeLyg6nOg59jlWc/iWZmP8uAYJns9bLD8dDUBjCMNiOW L//8OkCeyV0NhcaQitoxV/1AznbkojazFcsq2BQxjya5JVFX2jBe8IFUOoFEel2QWHZdr1 2MPmBQFvk5D6OENXP0ilsbbj0HPif7z1Ov+jSoyuIRwrrBG4Wo/XtKfuod/YibbPukUtkT GLGvOEHzMUtZ2DPbCZpxNs+PSS/p9REZy6TC1pHiXAbH8dJcBWU9UlWXwddaJXf3bkA6qh bLPIRwm5K7stVYXUFg/p/1oS2CEKWx5s0Hw2ibGyC5nCNeO8hAhh+1It8IdRgA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1660938040; a=rsa-sha256; cv=none; b=IyKNhy8JyXvwq6bKx+OHSg22koQgTxeZZ1JNavvFA/1qB/Q18GvszpsT4XNnka8T76XSrk uz1CgVj7A1f43xw1PjaehMDg8DVL28TvvlkVpt7za+mwtoVgHP9L5iLRL77QOSmLPry8nO y7Wje01lW8bTB6dyBZjJ0PFkcg4WuzoSIsPY3rM/Cb+h5AWZVphNNa1x/DEJCOcbfz5y/i m7vcl5fccT7L3UiAEnsE2ijVuvM/L0U3e6WggQkszjX5s40SpQR5EUZ9A+0omtvR8ERPmS fLrcAr6d0aVnIR+33Pd1T7ZFGKG//Y//akvtOC8F8a/85S5LTQU7NacTLXBhJQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=d5e52eb269e3059e37b328ea962be4c2200d1523 commit d5e52eb269e3059e37b328ea962be4c2200d1523 Author: Yuri Victorovich AuthorDate: 2022-08-19 19:39:56 +0000 Commit: Yuri Victorovich CommitDate: 2022-08-19 19:40:38 +0000 graphics/filament: New port: Real-time physically based rendering engine --- graphics/Makefile | 1 + graphics/filament/Makefile | 43 +++++ graphics/filament/distinfo | 3 + graphics/filament/files/patch-CMakeLists.txt | 10 ++ .../files/patch-filament_backend_src_Platform.cpp | 29 ++++ ...patch-libs_bluevk_include_vulkan_vk__platform.h | 11 ++ .../patch-libs_bluevk_src_BlueVKLinuxAndroid.cpp | 11 ++ .../filament/files/patch-libs_utils_CMakeLists.txt | 15 ++ ...atch-third__party_libsdl2_include_SDL__config.h | 11 ++ graphics/filament/pkg-descr | 4 + graphics/filament/pkg-plist | 187 +++++++++++++++++++++ 11 files changed, 325 insertions(+) diff --git a/graphics/Makefile b/graphics/Makefile index 08f7f486eaf1..124c439f1b09 100644 --- a/graphics/Makefile +++ b/graphics/Makefile @@ -187,6 +187,7 @@ SUBDIR += feh SUBDIR += fig2sxd SUBDIR += figurine + SUBDIR += filament SUBDIR += filmulator SUBDIR += flam3 SUBDIR += flasm diff --git a/graphics/filament/Makefile b/graphics/filament/Makefile new file mode 100644 index 000000000000..87534c01e5fa --- /dev/null +++ b/graphics/filament/Makefile @@ -0,0 +1,43 @@ +PORTNAME= filament +DISTVERSIONPREFIX= v +DISTVERSION= 1.25.5 +CATEGORIES= graphics + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Real-time physically based rendering engine + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= bash:shells/bash \ + evdev-proto>0:devel/evdev-proto + +USES= cmake compiler:c++17-lang localbase:ldflags sdl xorg +USE_SDL= sdl2 +USE_XORG= x11 + +USE_GITHUB= yes +GH_ACCOUNT= google + +#CMAKE_ON= BUILD_SHARED_LIBS # not yet supported, see https://github.com/google/filament/issues/1075 +CMAKE_OFF= USE_STATIC_LIBCXX FILAMENT_ENABLE_JAVA +CMAKE_ARGS+= -DDIST_DIR="." # prevent subdirectory for libraries + +LDFLAGS+= -lexecinfo -lSDL2 + +OPTIONS_DEFINE= SAMPLES +OPTIONS_SUB= yes + +SAMPLES_DESC= Build samples +SAMPLES_CMAKE_OFF= -DFILAMENT_SKIP_SAMPLES=ON + +post-patch: + @${REINPLACE_CMD} -e 's|"/proc/self/exe"|"/proc/curproc/file"|' ${WRKSRC}/libs/utils/src/linux/Path.cpp + +post-install: + # remove unnecessary files + @cd ${STAGEDIR}${PREFIX} && ${RM} -r README.md LICENSE docs + # remove conflicting file, see https://github.com/google/filament/issues/5957 + @${RM} ${STAGEDIR}${PREFIX}/lib/libzstd.a + +.include diff --git a/graphics/filament/distinfo b/graphics/filament/distinfo new file mode 100644 index 000000000000..f6cdef4894d3 --- /dev/null +++ b/graphics/filament/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1660834922 +SHA256 (google-filament-v1.25.5_GH0.tar.gz) = 4486b3f07f6cb9d1a6118e6bc8b926c7225dfcd8d741a5cc37e4de2c2034acc0 +SIZE (google-filament-v1.25.5_GH0.tar.gz) = 496371556 diff --git a/graphics/filament/files/patch-CMakeLists.txt b/graphics/filament/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..fac357ef46bd --- /dev/null +++ b/graphics/filament/files/patch-CMakeLists.txt @@ -0,0 +1,10 @@ +--- CMakeLists.txt.orig 2022-08-18 20:34:20 UTC ++++ CMakeLists.txt +@@ -99,6 +99,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + # ================================================================================================== + if (UNIX AND NOT APPLE AND NOT ANDROID AND NOT WEBGL) + set(LINUX TRUE) ++ message("setting LINUX=TRUE ... will treat the system as Linux-compatible") + endif() + + if (LINUX) diff --git a/graphics/filament/files/patch-filament_backend_src_Platform.cpp b/graphics/filament/files/patch-filament_backend_src_Platform.cpp new file mode 100644 index 000000000000..b26e228a487f --- /dev/null +++ b/graphics/filament/files/patch-filament_backend_src_Platform.cpp @@ -0,0 +1,29 @@ +--- filament/backend/src/Platform.cpp.orig 2022-08-16 18:01:04 UTC ++++ filament/backend/src/Platform.cpp +@@ -41,7 +41,7 @@ + #if defined(FILAMENT_DRIVER_SUPPORTS_VULKAN) + #include "vulkan/PlatformVkCocoa.h" + #endif +-#elif defined(__linux__) ++#elif defined(__linux__) || defined(__FreeBSD__) + #if defined(FILAMENT_SUPPORTS_WAYLAND) + #if defined (FILAMENT_DRIVER_SUPPORTS_VULKAN) + #include "vulkan/PlatformVkLinuxWayland.h" +@@ -125,7 +125,7 @@ DefaultPlatform* DefaultPlatform::create(Backend* back + return new PlatformVkAndroid(); + #elif defined(IOS) + return new PlatformVkCocoaTouch(); +- #elif defined(__linux__) ++ #elif defined(__linux__) || defined(__FreeBSD__) + #if defined(FILAMENT_SUPPORTS_WAYLAND) + return new PlatformVkLinuxWayland(); + #elif defined(FILAMENT_SUPPORTS_X11) +@@ -159,7 +159,7 @@ DefaultPlatform* DefaultPlatform::create(Backend* back + return new PlatformCocoaTouchGL(); + #elif defined(__APPLE__) + return new PlatformCocoaGL(); +- #elif defined(__linux__) ++ #elif defined(__linux__) || defined(__FreeBSD__) + #if defined(FILAMENT_SUPPORTS_X11) + return new PlatformGLX(); + #elif defined(FILAMENT_SUPPORTS_EGL_ON_LINUX) diff --git a/graphics/filament/files/patch-libs_bluevk_include_vulkan_vk__platform.h b/graphics/filament/files/patch-libs_bluevk_include_vulkan_vk__platform.h new file mode 100644 index 000000000000..cd131eedc729 --- /dev/null +++ b/graphics/filament/files/patch-libs_bluevk_include_vulkan_vk__platform.h @@ -0,0 +1,11 @@ +--- libs/bluevk/include/vulkan/vk_platform.h.orig 2022-08-19 02:33:42 UTC ++++ libs/bluevk/include/vulkan/vk_platform.h +@@ -25,7 +25,7 @@ + #define VK_USE_PLATFORM_ANDROID_KHR 1 + #elif defined(IOS) + #define VK_USE_PLATFORM_IOS_MVK 1 +-#elif defined(__linux__) ++#elif defined(__linux__) || defined(__FreeBSD__) + #if defined(FILAMENT_SUPPORTS_XCB) + #define VK_USE_PLATFORM_XCB_KHR 1 + #endif diff --git a/graphics/filament/files/patch-libs_bluevk_src_BlueVKLinuxAndroid.cpp b/graphics/filament/files/patch-libs_bluevk_src_BlueVKLinuxAndroid.cpp new file mode 100644 index 000000000000..7a36d4b012a5 --- /dev/null +++ b/graphics/filament/files/patch-libs_bluevk_src_BlueVKLinuxAndroid.cpp @@ -0,0 +1,11 @@ +--- libs/bluevk/src/BlueVKLinuxAndroid.cpp.orig 2022-08-18 16:44:25 UTC ++++ libs/bluevk/src/BlueVKLinuxAndroid.cpp +@@ -42,7 +42,7 @@ bool loadLibrary() { + path = FILAMENT_VKLIBRARY_PATH; + #elif defined(__ANDROID__) + path = "libvulkan.so"; +-#elif defined(__linux__) ++#elif defined(__linux__) || defined(__FreeBSD__) + path = "libvulkan.so.1"; + #else + #error "This file should only be compiled for Android or Linux" diff --git a/graphics/filament/files/patch-libs_utils_CMakeLists.txt b/graphics/filament/files/patch-libs_utils_CMakeLists.txt new file mode 100644 index 000000000000..2deb894bd724 --- /dev/null +++ b/graphics/filament/files/patch-libs_utils_CMakeLists.txt @@ -0,0 +1,15 @@ +--- libs/utils/CMakeLists.txt.orig 2022-08-16 18:01:04 UTC ++++ libs/utils/CMakeLists.txt +@@ -81,8 +81,10 @@ if (ANDROID) + list(APPEND SRCS src/android/ThermalManager.cpp) + endif() + if (LINUX OR ANDROID) +- list(APPEND SRCS src/linux/Condition.cpp) +- list(APPEND SRCS src/linux/Mutex.cpp) ++ if (NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD") ++ list(APPEND SRCS src/linux/Condition.cpp) ++ list(APPEND SRCS src/linux/Mutex.cpp) ++ endif() + list(APPEND SRCS src/linux/Path.cpp) + endif() + if (APPLE) diff --git a/graphics/filament/files/patch-third__party_libsdl2_include_SDL__config.h b/graphics/filament/files/patch-third__party_libsdl2_include_SDL__config.h new file mode 100644 index 000000000000..3a196242c609 --- /dev/null +++ b/graphics/filament/files/patch-third__party_libsdl2_include_SDL__config.h @@ -0,0 +1,11 @@ +--- third_party/libsdl2/include/SDL_config.h.orig 2022-08-19 18:37:12 UTC ++++ third_party/libsdl2/include/SDL_config.h +@@ -41,7 +41,7 @@ + #include "SDL_config_android.h" + #elif defined(__PSP__) + #include "SDL_config_psp.h" +-#elif defined(__LINUX__) ++#elif defined(__LINUX__) || defined(__FreeBSD__) + #if defined(FILAMENT_SUPPORTS_WAYLAND) + #include "SDL_config_linux_wayland.h" + #elif defined(FILAMENT_SUPPORTS_X11) diff --git a/graphics/filament/pkg-descr b/graphics/filament/pkg-descr new file mode 100644 index 000000000000..3fea3502fa0c --- /dev/null +++ b/graphics/filament/pkg-descr @@ -0,0 +1,4 @@ +Filament is a real-time physically-based renderer written in C++. +It is mobile-first, but also multi-platform. + +WWW: https://google.github.io/filament/ diff --git a/graphics/filament/pkg-plist b/graphics/filament/pkg-plist new file mode 100644 index 000000000000..ee3832f40cda --- /dev/null +++ b/graphics/filament/pkg-plist @@ -0,0 +1,187 @@ +%%SAMPLES%%bin/assets/fonts/Roboto-License.txt +%%SAMPLES%%bin/assets/fonts/Roboto-Medium.ttf +%%SAMPLES%%bin/assets/lightroom_14b/lightroom_14b_ibl.ktx +%%SAMPLES%%bin/assets/lightroom_14b/lightroom_14b_skybox.ktx +%%SAMPLES%%bin/assets/lightroom_14b/sh.txt +bin/basisu +bin/cmgen +bin/filamesh +bin/glslminifier +%%SAMPLES%%bin/gltf_viewer +bin/matc +%%SAMPLES%%bin/material_sandbox +bin/matinfo +bin/mipgen +bin/normal-blending +bin/resgen +bin/roughness-prefilter +bin/specular-color +bin/uberz +include/backend/BufferDescriptor.h +include/backend/CallbackHandler.h +include/backend/DriverEnums.h +include/backend/Handle.h +include/backend/PipelineState.h +include/backend/PixelBufferDescriptor.h +include/backend/Platform.h +include/backend/PresentCallable.h +include/backend/SamplerDescriptor.h +include/backend/TargetBufferInfo.h +include/camutils/Bookmark.h +include/camutils/Manipulator.h +include/camutils/compiler.h +include/filamat/Enums.h +include/filamat/IncludeCallback.h +include/filamat/MaterialBuilder.h +include/filamat/Package.h +include/filament-iblprefilter/IBLPrefilterContext.h +include/filament/Box.h +include/filament/BufferObject.h +include/filament/Camera.h +include/filament/Color.h +include/filament/ColorGrading.h +include/filament/DebugRegistry.h +include/filament/Engine.h +include/filament/Exposure.h +include/filament/Fence.h +include/filament/FilamentAPI.h +include/filament/Frustum.h +include/filament/IndexBuffer.h +include/filament/IndirectLight.h +include/filament/LightManager.h +include/filament/Material.h +include/filament/MaterialChunkType.h +include/filament/MaterialEnums.h +include/filament/MaterialInstance.h +include/filament/MorphTargetBuffer.h +include/filament/Options.h +include/filament/RenderTarget.h +include/filament/RenderableManager.h +include/filament/Renderer.h +include/filament/Scene.h +include/filament/SkinningBuffer.h +include/filament/Skybox.h +include/filament/Stream.h +include/filament/SwapChain.h +include/filament/Texture.h +include/filament/TextureSampler.h +include/filament/ToneMapper.h +include/filament/TransformManager.h +include/filament/VertexBuffer.h +include/filament/View.h +include/filament/Viewport.h +include/filameshio/MeshReader.h +include/geometry/SurfaceOrientation.h +include/geometry/Transcoder.h +include/gltfio/Animator.h +include/gltfio/AssetLoader.h +include/gltfio/FilamentAsset.h +include/gltfio/FilamentInstance.h +include/gltfio/MaterialProvider.h +include/gltfio/NodeManager.h +include/gltfio/ResourceLoader.h +include/gltfio/TextureProvider.h +include/gltfio/materials/uberarchive.h +include/gltfio/math.h +include/ibl/Cubemap.h +include/ibl/CubemapIBL.h +include/ibl/CubemapSH.h +include/ibl/CubemapUtils.h +include/ibl/Image.h +include/ibl/utilities.h +include/image/ColorTransform.h +include/image/ImageOps.h +include/image/ImageSampler.h +include/image/Ktx1Bundle.h +include/image/LinearImage.h +include/ktxreader/Ktx1Reader.h +include/ktxreader/Ktx2Reader.h +include/math/TMatHelpers.h +include/math/TQuatHelpers.h +include/math/TVecHelpers.h +include/math/compiler.h +include/math/fast.h +include/math/half.h +include/math/mat2.h +include/math/mat3.h +include/math/mat4.h +include/math/mathfwd.h +include/math/norm.h +include/math/quat.h +include/math/scalar.h +include/math/vec2.h +include/math/vec3.h +include/math/vec4.h +include/mathio/ostream.h +include/tsl/robin_growth_policy.h +include/tsl/robin_hash.h +include/tsl/robin_map.h +include/tsl/robin_set.h +include/uberz/ArchiveEnums.h +include/uberz/ReadableArchive.h +include/uberz/WritableArchive.h +include/utils/Allocator.h +include/utils/BitmaskEnum.h +include/utils/CString.h +include/utils/CallStack.h +include/utils/Entity.h +include/utils/EntityInstance.h +include/utils/EntityManager.h +include/utils/FixedCapacityVector.h +include/utils/Invocable.h +include/utils/Log.h +include/utils/Mutex.h +include/utils/NameComponentManager.h +include/utils/Panic.h +include/utils/Path.h +include/utils/PrivateImplementation-impl.h +include/utils/PrivateImplementation.h +include/utils/SingleInstanceComponentManager.h +include/utils/Slice.h +include/utils/SpinLock.h +include/utils/StructureOfArrays.h +include/utils/algorithm.h +include/utils/bitset.h +include/utils/compiler.h +include/utils/compressed_pair.h +include/utils/debug.h +include/utils/linux/Mutex.h +include/utils/memalign.h +include/utils/ostream.h +include/utils/unwindows.h +include/viewer/AutomationEngine.h +include/viewer/AutomationSpec.h +include/viewer/RemoteServer.h +include/viewer/Settings.h +include/viewer/ViewerGui.h +lib/libbackend.a +lib/libbasis_transcoder.a +lib/libbluegl.a +lib/libbluevk.a +lib/libcamutils.a +lib/libcivetweb.a +lib/libdracodec.a +lib/libfilabridge.a +lib/libfilaflat.a +lib/libfilamat.a +lib/libfilamat_lite.a +lib/libfilament-iblprefilter.a +lib/libfilament.a +lib/libfilameshio.a +lib/libgeometry.a +lib/libgltfio.a +lib/libgltfio_core.a +lib/libibl-lite.a +lib/libibl.a +lib/libimage.a +lib/libktxreader.a +lib/libmatdbg.a +lib/libmeshoptimizer.a +lib/libshaders.a +lib/libsmol-v.a +lib/libstb.a +lib/libuberarchive.a +lib/libuberzlib.a +lib/libutils.a +lib/libviewer.a +lib/libvkshaders.a