From 27faaaf24f3b2b8f3e5355a75c596d0f25da7cc1 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Thu, 8 Dec 2022 20:43:15 +0800 Subject: [PATCH] fix CMake linking on Linux --- README.md | 2 +- linux/CMakeLists.txt | 75 ++++++++++++++++++++++++++++++++++++++------ 2 files changed, 67 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 19320e7e..184e5664 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Building Filament: env LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/11/ CC=clang CXX=clang++ CXX_FLAGS="-v" LD_FLAGS="-v" FILAMENT_REQUIRES_CXXABI=true ./build.sh -c release Running example project: -CPLUS_INCLUDE_PATH=/usr/include/gtk-3.0/:/usr/include/pango-1.0/:/usr/include/harfbuzz:/usr/include/cairo/:/usr/include/gdk-pixbuf-2.0/:/usr/include/atk-1.0/ +export PKG_CONFIG_PATH=/usr/lib/pkgconfig/:/usr/lib64/pkgconfig/ CPLUS_INCLUDE_PATH=/usr/include/gtk-3.0/:/usr/include/pango-1.0/:/usr/include/harfbuzz:/usr/include/cairo/:/usr/include/gdk-pixbuf-2.0/:/usr/include/atk-1.0/ Extract and move both lib/ and include/ to ./ios diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt index d6a29532..f1ffa476 100644 --- a/linux/CMakeLists.txt +++ b/linux/CMakeLists.txt @@ -62,31 +62,87 @@ include_directories(../example/linux) target_link_libraries(${PLUGIN_NAME} PRIVATE flutter) target_link_libraries(${PLUGIN_NAME} PRIVATE PkgConfig::GTK) +add_library(geometry STATIC IMPORTED) +set_property(TARGET geometry PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libgeometry.a") +add_library(filament STATIC IMPORTED) +set_property(TARGET filament PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libfilament.a") +add_library(backend STATIC IMPORTED) +set_property(TARGET backend PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libbackend.a") +add_library(filameshio STATIC IMPORTED) +set_property(TARGET filameshio PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libfilameshio.a") +add_library(filament_viewer STATIC IMPORTED) +set_property(TARGET filament_viewer PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libviewer.a") +add_library(filamat STATIC IMPORTED) +set_property(TARGET filamat PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libfilamat.a") +add_library(utils STATIC IMPORTED) +set_property(TARGET utils PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libutils.a") +add_library(filabridge STATIC IMPORTED) +set_property(TARGET filabridge PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libfilabridge.a") +add_library(gltfio_core STATIC IMPORTED) +set_property(TARGET gltfio_core PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libgltfio_core.a") +add_library(filament-iblprefilter STATIC IMPORTED) +set_property(TARGET filament-iblprefilter PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libfilament-iblprefilter.a") +add_library(image STATIC IMPORTED) +set_property(TARGET image PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libimage.a") +add_library(camutils STATIC IMPORTED) +set_property(TARGET camutils PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libcamutils.a") +add_library(filaflat STATIC IMPORTED) +set_property(TARGET filaflat PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libfilaflat.a") +add_library(dracodec STATIC IMPORTED) +set_property(TARGET dracodec PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libdracodec.a") +add_library(ibl STATIC IMPORTED) +set_property(TARGET ibl PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libibl.a") +add_library(ktxreader STATIC IMPORTED) +set_property(TARGET ktxreader PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libktxreader.a") +add_library(imageio STATIC IMPORTED) +set_property(TARGET imageio PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libimageio.a") +add_library(tinyexr STATIC IMPORTED) +set_property(TARGET tinyexr PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libtinyexr.a") +add_library(stb STATIC IMPORTED) +set_property(TARGET stb PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libstb.a") +add_library(bluevk STATIC IMPORTED) +set_property(TARGET bluevk PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libbluevk.a") +add_library(vkshaders STATIC IMPORTED) +set_property(TARGET vkshaders PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libvkshaders.a") +add_library(bluegl STATIC IMPORTED) +set_property(TARGET bluegl PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libbluegl.a") +add_library(uberzlib STATIC IMPORTED) +set_property(TARGET uberzlib PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libuberzlib.a") +add_library(smol-v STATIC IMPORTED) +set_property(TARGET smol-v PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libsmol-v.a") +add_library(uberarchive STATIC IMPORTED) +set_property(TARGET uberarchive PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libuberarchive.a") +add_library(meshoptimizer STATIC IMPORTED) +set_property(TARGET meshoptimizer PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libmeshoptimizer.a") +add_library(mathio STATIC IMPORTED) +set_property(TARGET mathio PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libmathio.a") +add_library(math STATIC IMPORTED) +set_property(TARGET math PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libmath.a") target_link_libraries(${PLUGIN_NAME} PRIVATE FILAMENT_SHADERS - geometry + gltfio_core filament backend geometry filameshio - viewer + filament_viewer filamat - utils + filabridge - gltfio_core filament-iblprefilter - image + camutils filaflat dracodec ibl ktxreader - image + imageio + image + utils tinyexr stb - EGL bluevk vkshaders bluegl @@ -95,8 +151,8 @@ target_link_libraries(${PLUGIN_NAME} PRIVATE uberarchive meshoptimizer mathio - -l:libmath.a - geometry + math + geometry ) # List of absolute paths to libraries that should be bundled with the plugin. @@ -105,4 +161,5 @@ target_link_libraries(${PLUGIN_NAME} PRIVATE set(polyvox_filament_bundled_libraries "" PARENT_SCOPE + lib/libgeometry.a )