Skip to content

Commit 326b247

Browse files
committed
Testing libcurl export
1 parent 225b48b commit 326b247

File tree

1 file changed

+28
-9
lines changed

1 file changed

+28
-9
lines changed

CMakeLists.txt

+28-9
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,39 @@
11
cmake_minimum_required(VERSION 3.10)
22
project(HFHub CXX)
33

4+
# Set C++ standard
5+
set(CMAKE_CXX_STANDARD 17)
6+
47
# Find CURL package
58
find_package(CURL REQUIRED)
9+
if(NOT CURL_FOUND)
10+
message(FATAL_ERROR "CURL not found! Please install libcurl-dev.")
11+
endif()
612

713
# Define the hfhub static library and link it to CURL
814
add_library(hfhub STATIC src/huggingface_hub.cpp)
915

1016
# Ensure CURL is available for consumers
1117
target_include_directories(hfhub PUBLIC
1218
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
13-
$<INSTALL_INTERFACE:include>
19+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
1420
${CURL_INCLUDE_DIRS}
1521
)
22+
23+
target_compile_definitions(hfhub PRIVATE CURL_STATICLIB)
1624
target_link_libraries(hfhub PUBLIC CURL::libcurl)
1725

26+
# Include GNU Install directories for portability
27+
include(GNUInstallDirs)
28+
1829
# Export target
1930
install(TARGETS hfhub
2031
EXPORT hfhubTargets
21-
ARCHIVE DESTINATION lib
22-
LIBRARY DESTINATION lib
23-
RUNTIME DESTINATION bin
32+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
33+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
34+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
2435
)
25-
install(DIRECTORY include/ DESTINATION include)
36+
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
2637

2738
# Generate a CMake config file for hfhub
2839
include(CMakePackageConfigHelpers)
@@ -35,21 +46,29 @@ write_basic_package_version_file(
3546
install(EXPORT hfhubTargets
3647
FILE hfhubTargets.cmake
3748
NAMESPACE hfhub::
38-
DESTINATION lib/cmake/hfhub
49+
DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/hfhub
3950
)
4051

4152
configure_package_config_file(
4253
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/hfhubConfig.cmake.in"
4354
"${CMAKE_CURRENT_BINARY_DIR}/hfhubConfig.cmake"
44-
INSTALL_DESTINATION lib/cmake/hfhub
55+
INSTALL_DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/hfhub
4556
)
4657

4758
install(FILES
4859
"${CMAKE_CURRENT_BINARY_DIR}/hfhubConfig.cmake"
4960
"${CMAKE_CURRENT_BINARY_DIR}/hfhubConfigVersion.cmake"
50-
DESTINATION lib/cmake/hfhub
61+
DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/hfhub
5162
)
5263

64+
# Define the demo executable
5365
add_executable(hfhub_demo src/main.cpp)
66+
67+
# Link demo to hfhub
5468
target_link_libraries(hfhub_demo hfhub)
55-
install(TARGETS hfhub_demo DESTINATION bin)
69+
70+
# Ensure hfhub_demo has necessary includes
71+
target_include_directories(hfhub_demo PRIVATE include)
72+
73+
# Install the demo executable
74+
install(TARGETS hfhub_demo DESTINATION ${CMAKE_INSTALL_BINDIR})

0 commit comments

Comments
 (0)