Make available for FetchContent

This commit is contained in:
Hugo Mårdbrink 2025-04-19 16:09:50 +02:00
parent 6302207a1d
commit 81731c38f4
2 changed files with 36 additions and 8 deletions

View file

@ -6,26 +6,35 @@ set(CMAKE_C_STANDARD_REQUIRED YES)
set(CMAKE_C_EXTENSIONS NO) set(CMAKE_C_EXTENSIONS NO)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
include(GNUInstallDirs) include(GNUInstallDirs)
file(GLOB HTD_SOURCES file(GLOB HTD_SOURCES
src/data_structure/*.c src/data_structure/*.c
) )
add_library(htd STATIC ${HTD_SOURCES}) add_library(htd STATIC ${HTD_SOURCES})
add_library(htd::htd ALIAS htd)
target_include_directories(htd PUBLIC target_include_directories(htd PUBLIC
${PROJECT_SOURCE_DIR}/include $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include/htd>
) )
target_compile_options(htd PRIVATE -Wall -Wextra -Werror -pedantic) target_compile_options(htd PRIVATE -Wall -Wextra -Werror -pedantic)
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -fsanitize=address")
#set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
install(TARGETS htd install(TARGETS htd
EXPORT htdTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
) )
install(EXPORT htdTargets
FILE htdTargets.cmake
NAMESPACE htd::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/htd
)
install(DIRECTORY include/ install(DIRECTORY include/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/htd DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/htd
FILES_MATCHING PATTERN "*.h" FILES_MATCHING PATTERN "*.h"

View file

@ -1,5 +1,24 @@
# Personal library for C # Personal library for C
## Installation
This library can easily be installed using CMake and FetchContent.
Add this to your CMakeLists.txt file:
```cmake
include(FetchContent)
FetchContent_Declare(
htd
GIT_REPOSITORY https://github.com/hugomardbrink/htd.git
GIT_TAG main
)
FetchContent_MakeAvailable(htd)
add_executable(myapp main.c)
target_link_libraries(myapp PRIVATE htd::htd)
```
## Features ## Features
### Primitives ### Primitives
Use shorter more concise names for common C types. Use shorter more concise names for common C types.
@ -37,14 +56,14 @@ cd build
ctest ctest
``` ```
## Installing ## Local install
```bash ```bash
cd build cd build
make install make install
``` ```
## Uninstalling ## Local uninstall
```bash ```bash
cd build cd build