blob: 51ffa74392a9f79b8b485e756ef1551acd4b5fb8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 102c1b2..5529495 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -221,10 +221,9 @@ if (NOT "${3DMM_AUDIOMAN_LIBRARY}" STREQUAL "None")
add_compile_definitions(HAS_AUDIOMAN)
endif()
-# TODO: Find libiniparser if installed
-include(FetchIniParser)
-
-include(FetchMiniaudio)
+find_package(IniParser CONFIG REQUIRED)
+
+find_package(Miniaudio REQUIRED)
option(BUILD_TESTS "Enable building tests" ON)
if (BUILD_TESTS)
diff --git a/cmake/FindMiniaudio.cmake b/cmake/FindMiniaudio.cmake
new file mode 100644
index 0000000..e6e74b5
--- /dev/null
+++ b/cmake/FindMiniaudio.cmake
@@ -0,0 +1,33 @@
+find_package(PkgConfig QUIET)
+if(PkgConfig_FOUND)
+ pkg_check_modules(PC_${CMAKE_FIND_PACKAGE_NAME} QUIET miniaudio)
+endif()
+
+find_path(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR
+ NAMES miniaudio.h
+ HINTS ${PC_${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIRS}
+ PATH_SUFFIXES miniaudio
+)
+find_library(${CMAKE_FIND_PACKAGE_NAME}_LIBRARY
+ NAMES miniaudio
+ HINTS ${PC_${CMAKE_FIND_PACKAGE_NAME}_LIBRARY_DIRS}
+)
+
+include(FindPackageHandleStandardArgs)
+
+find_package_handle_standard_args(${CMAKE_FIND_PACKAGE_NAME}
+ REQUIRED_VARS ${CMAKE_FIND_PACKAGE_NAME}_LIBRARY ${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR)
+
+if(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
+ set(${CMAKE_FIND_PACKAGE_NAME}_LIBRARIES ${${CMAKE_FIND_PACKAGE_NAME}_LIBRARY})
+ set(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIRS ${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR})
+ set(${CMAKE_FIND_PACKAGE_NAME}_DEFINITIONS ${PC_${CMAKE_FIND_PACKAGE_NAME}_CFLAGS_OTHER})
+
+ if (NOT TARGET miniaudio)
+ add_library(miniaudio UNKNOWN IMPORTED)
+ set_target_properties(miniaudio PROPERTIES
+ IMPORTED_LOCATION "${${CMAKE_FIND_PACKAGE_NAME}_LIBRARY}"
+ INTERFACE_INCLUDE_DIRECTORIES "${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR}"
+ )
+ endif()
+endif()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 3ffd222..1a09fdc 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -189,9 +189,21 @@ target_link_libraries(studio
KauaiKid
KauaiDlg
engine
-
- iniparser-static
)
+
+if (TARGET iniparser-static)
+ target_link_libraries(studio
+ PRIVATE
+ iniparser-static
+ )
+elseif (TARGET iniparser-shared)
+ target_link_libraries(studio
+ PRIVATE
+ iniparser-shared
+ )
+else()
+ message(FATAL_ERROR "IniParser target not found (expected iniparser-static or iniparser-shared)")
+endif()
if (WIN32)
target_link_libraries(studio
PUBLIC
|