aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi92@disroot.org>2025-12-19 00:01:17 +0100
committerXavier Del Campo Romero <xavi92@disroot.org>2025-12-22 12:47:40 +0100
commitc736e13c7dd04bfa6c0580a4db3d6501dc28eed1 (patch)
tree04d1b490f710b0ed956e8f43d620ed6f846b8cf2 /cmake
parente2f9ee3f8cd319e952e4f5d5ec466f0ea9e6e77f (diff)
downloadglobalops-irrlicht.tar.gz
Irrlichtirrlicht
Diffstat (limited to 'cmake')
-rw-r--r--cmake/FindIrrlicht.cmake44
1 files changed, 44 insertions, 0 deletions
diff --git a/cmake/FindIrrlicht.cmake b/cmake/FindIrrlicht.cmake
new file mode 100644
index 0000000..0d2533f
--- /dev/null
+++ b/cmake/FindIrrlicht.cmake
@@ -0,0 +1,44 @@
+mark_as_advanced(IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR)
+find_library(IRRLICHT_LIBRARY NAMES libirrlicht Irrlicht)
+find_path(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h PATH_SUFFIXES irrlicht)
+
+# Major version
+file(STRINGS ${IRRLICHT_INCLUDE_DIR}/IrrCompileConfig.h
+ irrlicht_MAJOR_VERSION_LINE REGEX
+ "^#define[ \t]+IRRLICHT_VERSION_MAJOR[ \t]+[0-9]+$")
+string(REGEX REPLACE
+ "^#define[ \t]+IRRLICHT_VERSION_MAJOR[ \t]+([0-9]+)$"
+ "\\1" irrlicht_VERSION_MAJOR "${irrlicht_MAJOR_VERSION_LINE}")
+
+# Minor version
+file(STRINGS ${IRRLICHT_INCLUDE_DIR}/IrrCompileConfig.h
+ irrlicht_MINOR_VERSION_LINE REGEX
+ "^#define[ \t]+IRRLICHT_VERSION_MINOR[ \t]+[0-9]+$")
+string(REGEX REPLACE
+ "^#define[ \t]+IRRLICHT_VERSION_MINOR[ \t]+([0-9]+)$"
+ "\\1" irrlicht_VERSION_MINOR "${irrlicht_MINOR_VERSION_LINE}")
+
+# Patch version (revision)
+file(STRINGS ${IRRLICHT_INCLUDE_DIR}/IrrCompileConfig.h
+ irrlicht_REVISION_VERSION_LINE REGEX
+ "^#define[ \t]+IRRLICHT_VERSION_REVISION[ \t]+[0-9]+$")
+string(REGEX REPLACE
+ "^#define[ \t]+IRRLICHT_VERSION_REVISION[ \t]+([0-9]+)$"
+ "\\1" irrlicht_VERSION_REVISION "${irrlicht_REVISION_VERSION_LINE}")
+
+set(Irrlicht_VERSION_STRING
+ ${irrlicht_VERSION_MAJOR}.${irrlicht_VERSION_MINOR}.${irrlicht_VERSION_REVISION})
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Irrlicht
+ VERSION_VAR Irrlicht_VERSION_STRING
+ REQUIRED_VARS IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR)
+
+if(Irrlicht_FOUND)
+ if(NOT TARGET Irrlicht)
+ add_library(Irrlicht UNKNOWN IMPORTED)
+ set_target_properties(Irrlicht PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${IRRLICHT_INCLUDE_DIR}"
+ IMPORTED_LOCATION "${IRRLICHT_LIBRARY}")
+ endif()
+endif()