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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
Obtained from: https://github.com/TileDB-Inc/TileDB/pull/3270
--- cmake/Modules/FindMagic_EP.cmake.orig 2022-08-25 01:25:52 UTC
+++ cmake/Modules/FindMagic_EP.cmake
@@ -3,7 +3,7 @@
#
# The MIT License
#
-# Copyright (c) 2018-2021 TileDB, Inc.
+# Copyright (c) 2022 TileDB, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
@@ -34,47 +34,47 @@
# Include some common helper functions.
include(TileDBCommon)
-# Search the path set during the superbuild for the EP.
-set(LIBMAGIC_PATHS ${TILEDB_EP_INSTALL_PREFIX})
+# First check for a static version in the EP prefix.
+find_library(libmagic_LIBRARIES
+ NAMES
+ magic${CMAKE_STATIC_LIBRARY_SUFFIX}
+ libmagic${CMAKE_STATIC_LIBRARY_SUFFIX}
+ PATHS ${TILEDB_EP_INSTALL_PREFIX}
+ PATH_SUFFIXES lib
+ NO_DEFAULT_PATH
+)
-if(TILEDB_LIBMAGIC_EP_BUILT)
- find_package(libmagic PATHS ${TILEDB_EP_INSTALL_PREFIX} ${TILEDB_DEPS_NO_DEFAULT_PATH})
-endif()
-
-if (TILEDB_LIBMAGIC_EP_BUILT)
+if (libmagic_LIBRARIES)
+ set(libmagic_STATIC_EP_FOUND TRUE)
find_path(libmagic_INCLUDE_DIR
- NAMES magic.h
- PATHS ${LIBMAGIC_PATHS}
- PATH_SUFFIXES include
- ${NO_DEFAULT_PATH}
- )
-
- if (NOT libmagic_INCLUDE_DIR)
- find_path(libmagic_INCLUDE_DIR
- NAMES file/file.h
- PATHS ${LIBMAGIC_PATHS}
- PATH_SUFFIXES include
- ${NO_DEFAULT_PATH}
- )
- endif()
-
- # Link statically if installed with the EP.
+ NAMES magic.h
+ PATHS ${TILEDB_EP_INSTALL_PREFIX}
+ PATH_SUFFIXES include
+ NO_DEFAULT_PATH
+ )
+elseif(NOT TILEDB_FORCE_ALL_DEPS)
+ set(libmagic_STATIC_EP_FOUND FALSE)
+ # Static EP not found, search in system paths.
find_library(libmagic_LIBRARIES
- libmagic
- PATHS ${LIBMAGIC_PATHS}
- PATH_SUFFIXES lib a
- #${TILEDB_DEPS_NO_DEFAULT_PATH}
- ${NO_DEFAULT_PATH}
- )
-
- include(FindPackageHandleStandardArgs)
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(libmagic
- REQUIRED_VARS libmagic_LIBRARIES libmagic_INCLUDE_DIR
- )
+ NAMES
+ magic libmagic
+ PATH_SUFFIXES lib bin
+ ${TILEDB_DEPS_NO_DEFAULT_PATH}
+ )
+ find_path(libmagic_INCLUDE_DIR
+ NAMES magic.h
+ PATH_SUFFIXES include
+ ${TILEDB_DEPS_NO_DEFAULT_PATH}
+ )
endif()
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(libmagic
+ REQUIRED_VARS libmagic_LIBRARIES libmagic_INCLUDE_DIR
+)
+
# if not yet built add it as an external project
-if(NOT TILEDB_LIBMAGIC_EP_BUILT)
+if(NOT libmagic_FOUND)
if (TILEDB_SUPERBUILD)
message(STATUS "Adding Magic as an external project")
@@ -115,11 +115,22 @@ if(NOT TILEDB_LIBMAGIC_EP_BUILT)
endif()
endif()
-find_file(libmagic_DICTIONARY magic.mgc
- PATHS ${LIBMAGIC_PATHS}
- PATH_SUFFIXES bin share
- ${NO_DEFAULT_PATH}
-)
+if(TILEDB_LIBMAGIC_EP_BUILT)
+ find_file(libmagic_DICTIONARY magic.mgc
+ PATHS ${LIBMAGIC_PATHS}
+ PATH_SUFFIXES bin share misc
+ ${TILEDB_DEPS_NO_DEFAULT_PATH}
+ )
+else()
+ find_file(libmagic_DICTIONARY magic.mgc
+ PATH_SUFFIXES bin share misc share/misc
+ ${TILEDB_DEPS_NO_DEFAULT_PATH}
+ )
+endif()
+
+if(NOT TILEDB_SUPERBUILD AND NOT libmagic_DICTIONARY)
+ message(FATAL_ERROR "Unable to find libmagic dictionary")
+endif()
if (libmagic_FOUND AND NOT TARGET libmagic)
message(STATUS "Found Magic, adding imported target: ${libmagic_LIBRARIES}")
|