Skip to content
This repository was archived by the owner on Apr 15, 2020. It is now read-only.

Commit 87009e3

Browse files
committed
libusb: Improve test program and fix linking on macOS
1 parent 75645b0 commit 87009e3

File tree

9 files changed

+58
-19
lines changed

9 files changed

+58
-19
lines changed

cmake/modules/hunter_pkgconfig_export_target.cmake

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ include(hunter_status_debug)
1616
# * x11
1717
# * x264
1818
# * xcb
19-
function(hunter_pkgconfig_export_target PKG_CONFIG_MODULE)
19+
function(hunter_pkgconfig_export_target PKG_CONFIG_MODULE PKG_GENERATE_SHARED)
2020
set(target_name "PkgConfig::${PKG_CONFIG_MODULE}")
2121
if(TARGET "${target_name}")
2222
return()
@@ -29,15 +29,25 @@ function(hunter_pkgconfig_export_target PKG_CONFIG_MODULE)
2929
endif()
3030
add_library("${target_name}" INTERFACE IMPORTED GLOBAL)
3131

32+
if(${PKG_GENERATE_SHARED})
33+
set(PKG_CONFIG_PREFIX "${PKG_CONFIG_MODULE}")
34+
else()
35+
set(PKG_CONFIG_PREFIX "${PKG_CONFIG_MODULE}_STATIC")
36+
endif()
37+
38+
hunter_status_debug(
39+
"PKG_CONFIG_MODULE ${PKG_CONFIG_MODULE} Using prefix ${PKG_CONFIG_PREFIX}"
40+
)
41+
3242
# --- INTERFACE_INCLUDE_DIRECTORIES begin ---
3343
hunter_status_debug(
34-
"PKG_CONFIG_MODULE ${PKG_CONFIG_MODULE} INCLUDE_DIRS: ${${PKG_CONFIG_MODULE}_INCLUDE_DIRS}"
44+
"PKG_CONFIG_MODULE ${PKG_CONFIG_MODULE} INCLUDE_DIRS: ${${PKG_CONFIG_PREFIX}_INCLUDE_DIRS}"
3545
)
36-
if(NOT "${${PKG_CONFIG_MODULE}_INCLUDE_DIRS}" STREQUAL "")
46+
if(NOT "${${PKG_CONFIG_PREFIX}_INCLUDE_DIRS}" STREQUAL "")
3747
set_target_properties("${target_name}"
3848
PROPERTIES
3949
INTERFACE_INCLUDE_DIRECTORIES
40-
"${${PKG_CONFIG_MODULE}_INCLUDE_DIRS}"
50+
"${${PKG_CONFIG_PREFIX}_INCLUDE_DIRS}"
4151
)
4252
endif()
4353
# --- INTERFACE_INCLUDE_DIRECTORIES end ---
@@ -46,18 +56,18 @@ function(hunter_pkgconfig_export_target PKG_CONFIG_MODULE)
4656
set(link_libs)
4757

4858
hunter_status_debug(
49-
"PKG_CONFIG_MODULE ${PKG_CONFIG_MODULE} LDFLAGS: ${${PKG_CONFIG_MODULE}_LDFLAGS}"
59+
"PKG_CONFIG_MODULE ${PKG_CONFIG_MODULE} LDFLAGS: ${${PKG_CONFIG_PREFIX}_LDFLAGS}"
5060
)
51-
if(NOT "${${PKG_CONFIG_MODULE}_LDFLAGS}" STREQUAL "")
52-
list(APPEND link_libs ${${PKG_CONFIG_MODULE}_LDFLAGS})
61+
if(NOT "${${PKG_CONFIG_PREFIX}_LDFLAGS}" STREQUAL "")
62+
list(APPEND link_libs ${${PKG_CONFIG_PREFIX}_LDFLAGS})
5363
endif()
5464

5565
hunter_status_debug(
56-
"PKG_CONFIG_MODULE ${PKG_CONFIG_MODULE} LDFLAGS_OTHER: ${${PKG_CONFIG_MODULE}_LDFLAGS_OTHER}"
66+
"PKG_CONFIG_MODULE ${PKG_CONFIG_MODULE} LDFLAGS_OTHER: ${${PKG_CONFIG_PREFIX}_LDFLAGS_OTHER}"
5767
)
58-
if(NOT "${${PKG_CONFIG_MODULE}_LDFLAGS_OTHER}" STREQUAL "")
68+
if(NOT "${${PKG_CONFIG_PREFIX}_LDFLAGS_OTHER}" STREQUAL "")
5969
# turn "-framework;A;-framework;B" into "-framework A;-framework B"
60-
string(REPLACE "-framework;" "-framework " ldflags_other "${${PKG_CONFIG_MODULE}_LDFLAGS_OTHER}")
70+
string(REPLACE "-framework;" "-framework " ldflags_other "${${PKG_CONFIG_PREFIX}_LDFLAGS_OTHER}")
6171
list(APPEND link_libs ${ldflags_other})
6272
endif()
6373

@@ -76,17 +86,17 @@ function(hunter_pkgconfig_export_target PKG_CONFIG_MODULE)
7686
set(compile_opts)
7787

7888
hunter_status_debug(
79-
"PKG_CONFIG_MODULE ${PKG_CONFIG_MODULE} CFLAGS: ${${PKG_CONFIG_MODULE}_CFLAGS}"
89+
"PKG_CONFIG_MODULE ${PKG_CONFIG_MODULE} CFLAGS: ${${PKG_CONFIG_PREFIX}_CFLAGS}"
8090
)
81-
if(NOT "${${PKG_CONFIG_MODULE}_CFLAGS}" STREQUAL "")
82-
list(APPEND compile_opts ${${PKG_CONFIG_MODULE}_CFLAGS})
91+
if(NOT "${${PKG_CONFIG_PREFIX}_CFLAGS}" STREQUAL "")
92+
list(APPEND compile_opts ${${PKG_CONFIG_PREFIX}_CFLAGS})
8393
endif()
8494

8595
hunter_status_debug(
86-
"PKG_CONFIG_MODULE ${PKG_CONFIG_MODULE} CFLAGS_OTHER: ${${PKG_CONFIG_MODULE}_CFLAGS_OTHER}"
96+
"PKG_CONFIG_MODULE ${PKG_CONFIG_MODULE} CFLAGS_OTHER: ${${PKG_CONFIG_PREFIX}_CFLAGS_OTHER}"
8797
)
88-
if(NOT "${${PKG_CONFIG_MODULE}_CFLAGS_OTHER}" STREQUAL "")
89-
list(APPEND compile_opts ${${PKG_CONFIG_MODULE}_CFLAGS_OTHER})
98+
if(NOT "${${PKG_CONFIG_PREFIX}_CFLAGS_OTHER}" STREQUAL "")
99+
list(APPEND compile_opts ${${PKG_CONFIG_PREFIX}_CFLAGS_OTHER})
90100
endif()
91101

92102
if(NOT "${compile_opts}" STREQUAL "")
@@ -98,4 +108,3 @@ function(hunter_pkgconfig_export_target PKG_CONFIG_MODULE)
98108
endif()
99109
# --- INTERFACE_COMPILE_OPTIONS end ---
100110
endfunction()
101-

cmake/projects/libusb/hunter.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ hunter_configuration_types(libusb CONFIGURATION_TYPES Release)
3131
hunter_pick_scheme(DEFAULT url_sha1_autogen_autotools)
3232
hunter_cacheable(libusb)
3333
hunter_download(PACKAGE_NAME libusb
34-
PACKAGE_INTERNAL_DEPS_ID "1"
34+
PACKAGE_INTERNAL_DEPS_ID "2"
3535
PACKAGE_UNRELOCATABLE_TEXT_FILES
3636
lib/pkgconfig/libusb-1.0.pc
3737
)

cmake/projects/tcl/schemes/url_sha1_tcl_autotools.cmake.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,12 @@ if(NOT default_pkgconfig)
8989
set(DEPENDS_ON_PACKAGES ${DEPENDS_ON_PKGCONFIGS})
9090
endif()
9191

92+
set(PKG_GENERATE_SHARED "${BUILD_SHARED_LIBS}")
93+
9294
foreach(PKG_CONFIG_MODULE ${PKGCONFIG_EXPORT_TARGETS})
9395
# Use:
9496
# * DEPENDS_ON_PACKAGES
97+
# * PKG_GENERATE_SHARED
9598
configure_file(
9699
"@HUNTER_GLOBAL_SCRIPT_DIR@/pkgconfig-export-targets.cmake.in"
97100
"@HUNTER_PACKAGE_INSTALL_PREFIX@/lib/cmake/${PKG_CONFIG_MODULE}/${PKG_CONFIG_MODULE}Config.cmake"

cmake/projects/x264/schemes/url_sha1_x264.cmake.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,8 @@ else()
341341
)
342342
endif()
343343

344+
set(PKG_GENERATE_SHARED "${BUILD_SHARED_LIBS}")
345+
344346
foreach(PKG_CONFIG_MODULE ${PKGCONFIG_EXPORT_TARGETS})
345347
configure_file(
346348
"@HUNTER_GLOBAL_SCRIPT_DIR@/pkgconfig-export-targets.cmake.in"

cmake/projects/xcb/schemes/xcb.cmake.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,12 @@ hunter_autotools_project(
6969

7070
set(PKG_CONFIG_MODULE xcb)
7171

72+
set(PKG_GENERATE_SHARED "${BUILD_SHARED_LIBS}")
73+
7274
# Use:
7375
# * PKG_CONFIG_MODULE
7476
# * DEPENDS_ON_PACKAGES
77+
# * PKG_GENERATE_SHARED
7578
configure_file(
7679
"@HUNTER_GLOBAL_SCRIPT_DIR@/pkgconfig-export-targets.cmake.in"
7780
"@HUNTER_PACKAGE_INSTALL_PREFIX@/lib/cmake/${PKG_CONFIG_MODULE}/${PKG_CONFIG_MODULE}Config.cmake"

cmake/schemes/url_sha1_autogen_autotools.cmake.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,12 @@ if(NOT default_pkgconfig)
6262
set(DEPENDS_ON_PACKAGES ${DEPENDS_ON_PKGCONFIGS})
6363
endif()
6464

65+
set(PKG_GENERATE_SHARED "${BUILD_SHARED_LIBS}")
66+
6567
foreach(PKG_CONFIG_MODULE ${PKGCONFIG_EXPORT_TARGETS})
6668
# Use:
6769
# * DEPENDS_ON_PACKAGES
70+
# * PKG_GENERATE_SHARED
6871
configure_file(
6972
"@HUNTER_GLOBAL_SCRIPT_DIR@/pkgconfig-export-targets.cmake.in"
7073
"@HUNTER_PACKAGE_INSTALL_PREFIX@/lib/cmake/${PKG_CONFIG_MODULE}/${PKG_CONFIG_MODULE}Config.cmake"

cmake/schemes/url_sha1_autotools.cmake.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,12 @@ if(NOT default_pkgconfig)
6464
set(DEPENDS_ON_PACKAGES ${DEPENDS_ON_PKGCONFIGS})
6565
endif()
6666

67+
set(PKG_GENERATE_SHARED "${BUILD_SHARED_LIBS}")
68+
6769
foreach(PKG_CONFIG_MODULE ${PKGCONFIG_EXPORT_TARGETS})
6870
# Use:
6971
# * DEPENDS_ON_PACKAGES
72+
# * PKG_GENERATE_SHARED
7073
configure_file(
7174
"@HUNTER_GLOBAL_SCRIPT_DIR@/pkgconfig-export-targets.cmake.in"
7275
"@HUNTER_PACKAGE_INSTALL_PREFIX@/lib/cmake/${PKG_CONFIG_MODULE}/${PKG_CONFIG_MODULE}Config.cmake"

examples/libusb/boo.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,20 @@
11
#include <libusb.h>
22

33
int main() {
4+
libusb_device **devs;
5+
int r;
6+
ssize_t cnt;
7+
8+
r = libusb_init(NULL);
9+
if (r < 0)
10+
return r;
11+
12+
cnt = libusb_get_device_list(NULL, &devs);
13+
if (cnt < 0)
14+
return (int) cnt;
15+
16+
libusb_free_device_list(devs, 1);
17+
18+
libusb_exit(NULL);
19+
return 0;
420
}

scripts/pkgconfig-export-targets.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
include(hunter_pkgconfig_export_target)
99

10-
hunter_pkgconfig_export_target("@PKG_CONFIG_MODULE@")
10+
hunter_pkgconfig_export_target("@PKG_CONFIG_MODULE@" "@PKG_GENERATE_SHARED@")
1111

1212
foreach(_hunter_deps @DEPENDS_ON_PACKAGES@)
1313
find_package("${_hunter_deps}" CONFIG REQUIRED)

0 commit comments

Comments
 (0)