From 57bcc77d37c57c3d50a2764301d86d12d52c5708 Mon Sep 17 00:00:00 2001
From: Joseph Walton-Rivers <joseph@walton-rivers.uk>
Date: Fri, 17 Dec 2021 17:33:46 +0000
Subject: [PATCH] first attempt at flatpak support

---
 .gitignore                             |  1 +
 .gitmodules                            |  3 +++
 build-aux/com.fossgalaxy.fggl.demo.yml | 25 +++++++++++++++++++++++++
 build-aux/modules/glm-0.9.9.8.json     | 22 ++++++++++++++++++++++
 build-aux/modules/googletest.yml       |  6 ++++++
 build-aux/shared-modules               |  1 +
 fggl/CMakeLists.txt                    |  5 ++++-
 tests/CMakeLists.txt                   |  3 +++
 8 files changed, 65 insertions(+), 1 deletion(-)
 create mode 100644 .gitmodules
 create mode 100644 build-aux/com.fossgalaxy.fggl.demo.yml
 create mode 100644 build-aux/modules/glm-0.9.9.8.json
 create mode 100644 build-aux/modules/googletest.yml
 create mode 160000 build-aux/shared-modules

diff --git a/.gitignore b/.gitignore
index 3a3ac58..dddc9b5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@ builds/
 cmake-build-debug/
 cmake-build-debug-coverage/
 imgui.ini
+.flatpak-builder/
 
 # dotfiles
 .idea/
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..165726c
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "build-aux/shared-modules"]
+	path = build-aux/shared-modules
+	url = https://github.com/flathub/shared-modules.git
diff --git a/build-aux/com.fossgalaxy.fggl.demo.yml b/build-aux/com.fossgalaxy.fggl.demo.yml
new file mode 100644
index 0000000..c5194b7
--- /dev/null
+++ b/build-aux/com.fossgalaxy.fggl.demo.yml
@@ -0,0 +1,25 @@
+app-id: com.fossgalaxy.fggl.demo
+runtime: org.freedesktop.Platform.GL.default
+runtime-version: '21.08'
+sdk: org.freedesktop.Sdk
+command: fggl-demo
+modules:
+  - name: glfw
+    buildsystem: cmake-ninja
+    builddir: true
+    sources:
+      - type: archive
+        url: https://github.com/glfw/glfw/releases/download/3.3.4/glfw-3.3.4.zip
+        sha256: bbd2c42c660b725e9755eb417e40b373f0d4c03138c9b2e210d02cd308bd99cd
+    cleanup:
+      - /include
+      - /lib/pkgconfig
+  - modules/glm-0.9.9.8.json
+  - shared-modules/glew/glew.json
+  - shared-modules/glu/glu-9.json
+  - modules/googletest.yml
+  - name: fggl
+    buildsystem: cmake
+    sources:
+      - type: dir
+        path: ../
diff --git a/build-aux/modules/glm-0.9.9.8.json b/build-aux/modules/glm-0.9.9.8.json
new file mode 100644
index 0000000..f1af647
--- /dev/null
+++ b/build-aux/modules/glm-0.9.9.8.json
@@ -0,0 +1,22 @@
+{
+    "name": "glm",
+    "buildsystem": "simple",
+    "build-commands": [
+        "mkdir -p /app/include/",
+        "cp -vr glm /app/include/",
+        "rm -v /app/include/glm/CMakeLists.txt",
+        "mkdir -p /app/lib/",
+        "cp -vr cmake /app/lib/"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://github.com/g-truc/glm.git",
+            "tag": "0.9.9.8"
+        }
+    ],
+    "cleanup": [
+        "/include",
+        "/lib/cmake"
+    ]
+}
diff --git a/build-aux/modules/googletest.yml b/build-aux/modules/googletest.yml
new file mode 100644
index 0000000..5c47899
--- /dev/null
+++ b/build-aux/modules/googletest.yml
@@ -0,0 +1,6 @@
+name: googletest
+buildsystem: cmake
+sources:
+  - type: archive
+    url: https://github.com/google/googletest/archive/refs/tags/release-1.11.0.zip
+    sha256: 353571c2440176ded91c2de6d6cd88ddd41401d14692ec1f99e35d013feda55a
diff --git a/build-aux/shared-modules b/build-aux/shared-modules
new file mode 160000
index 0000000..0534d32
--- /dev/null
+++ b/build-aux/shared-modules
@@ -0,0 +1 @@
+Subproject commit 0534d3276b3966e87abacd163f757454b6fcf724
diff --git a/fggl/CMakeLists.txt b/fggl/CMakeLists.txt
index f2f20ea..a530736 100644
--- a/fggl/CMakeLists.txt
+++ b/fggl/CMakeLists.txt
@@ -1,6 +1,9 @@
 configure_file(FgglConfig.h.in FgglConfig.h)
 
-set(CMAKE_CXX_CLANG_TIDY clang-tidy -checks=*,-llvmlibc-*,-fuchsia-*,-cppcoreguidelines-*,-llvm-*)
+find_program(CLANG_TIDY_FOUND clang-tidy)
+if ( CLANG_TIDY_FOUND )
+	set(CMAKE_CXX_CLANG_TIDY clang-tidy -checks=*,-llvmlibc-*,-fuchsia-*,-cppcoreguidelines-*,-llvm-*)
+endif()
 
 add_library(fggl fggl.cpp
 	ecs/ecs.cpp
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 26447b9..2ea02a9 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -1,6 +1,8 @@
 find_package(Threads REQUIRED)
 
 # GTest Dependency
+find_package(GTest)
+if ( NOT GTest_FOUND )
 include(FetchContent)
 FetchContent_Declare(
   googletest
@@ -9,5 +11,6 @@ FetchContent_Declare(
 # For Windows: Prevent overriding the parent project's compiler/linker settings
 set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
 FetchContent_MakeAvailable(googletest)
+endif ()
 
 add_subdirectory(testfggl)
-- 
GitLab