Skip to content

Commit b5c708a

Browse files
committed
Generate pkgconfig files
This allow to easily include the libraries in other projects. See https://www.freedesktop.org/wiki/Software/pkg-config/ for more information about what pkg-config is.
1 parent 53f295c commit b5c708a

File tree

10 files changed

+55
-0
lines changed

10 files changed

+55
-0
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ set_if_not_defined(NIFTI_INSTALL_RUNTIME_DIR bin)
7272
set_if_not_defined(NIFTI_INSTALL_LIBRARY_DIR lib)
7373
set_if_not_defined(NIFTI_INSTALL_ARCHIVE_DIR ${NIFTI_INSTALL_LIBRARY_DIR})
7474
set_if_not_defined(NIFTI_INSTALL_INCLUDE_DIR include/nifti)
75+
set_if_not_defined(NIFTI_INSTALL_PKGCONFIG_DIR ${NIFTI_INSTALL_LIBRARY_DIR}/pkgconfig)
7576
set_if_not_defined(NIFTI_INSTALL_MAN_DIR share/man/man1)
7677
set_if_not_defined(NIFTI_INSTALL_DOC_DIR share/doc/${PROJECT_NAME})
7778
set_if_not_defined(NIFTI_ZLIB_LIBRARIES "")

cmake/nifti_macros.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@ function(install_nifti_target target_name)
134134
PUBLIC_HEADER DESTINATION ${NIFTI_INSTALL_INCLUDE_DIR}
135135
COMPONENT Development
136136
INCLUDES DESTINATION ${NIFTI_INSTALL_INCLUDE_DIR}
137+
COMPONENT Development
138+
PKG_CONFIG DESTINATION ${NIFTI_INSTALL_PKGCONFIG_DIR}
137139
)
138140
endfunction()
139141

nifti2/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ set_target_properties(
1111
# Set library version when building shared libs.
1212
if(BUILD_SHARED_LIBS)
1313
get_lib_version_vars("nifti2_io_version.h" NIFTI2_VERSION NIFTI2_MAJOR_VERSION)
14+
configure_file(nifti2.pc.in nifti2.pc @ONLY)
1415
set_target_properties(${NIFTI_NIFTILIB2_NAME}
1516
PROPERTIES
1617
${NIFTI_LIBRARY_PROPERTIES}
1718
VERSION ${NIFTI2_VERSION}
1819
SOVERSION ${NIFTI2_MAJOR_VERSION}
20+
PKG_CONFIG nifti2.pc
1921
)
2022
endif()
2123
install_nifti_target(${NIFTI_NIFTILIB2_NAME})

nifti2/nifti2.pc.in

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
prefix=@CMAKE_INSTALL_PREFIX@
2+
exec_prefix="${prefix}"
3+
libdir="${prefix}/@NIFTI_INSTALL_LIBRARY_DIR@"
4+
includedir="${prefix}/@NIFTI_INSTALL_INCLUDE_DIR@"
5+
6+
Name: nifti2
7+
Description: Core i/o routines for reading and writing nifti-2 format files
8+
Version: @PROJECT_VERSION@
9+
Requires: znzlib
10+
Libs: -L${libdir} -lnifti2
11+
Cflags: -I${includedir}

nifticdf/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ target_compile_options(${NIFTI_CDFLIB_NAME} PRIVATE "-D__COMPILE_UNUSED_FUNCTION
1111
target_link_libraries(${NIFTI_CDFLIB_NAME} PUBLIC ${NIFTI_PACKAGE_PREFIX}niftiio)
1212
get_lib_version_vars("nifticdf_version.h" NIFTICDF_VERSION NIFTICDF_MAJOR_VERSION)
1313
if(BUILD_SHARED_LIBS)
14+
configure_file(nifticdf.pc.in nifticdf.pc @ONLY)
1415
set_target_properties(${NIFTI_CDFLIB_NAME}
1516
PROPERTIES
1617
${NIFTI_LIBRARY_PROPERTIES}
1718
VERSION ${NIFTICDF_VERSION}
1819
SOVERSION ${NIFTICDF_MAJOR_VERSION}
20+
PKG_CONFIG nifticdf.pc
1921
)
2022
endif()
2123
install_nifti_target(${NIFTI_CDFLIB_NAME})

nifticdf/nifticdf.pc.in

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
prefix=@CMAKE_INSTALL_PREFIX@
2+
exec_prefix="${prefix}"
3+
libdir="${prefix}/@NIFTI_INSTALL_LIBRARY_DIR@"
4+
includedir="${prefix}/@NIFTI_INSTALL_INCLUDE_DIR@"
5+
6+
Name: nifticdf
7+
Description: Functions to compute cumulative distributions and their inverses
8+
Version: @PROJECT_VERSION@
9+
Libs: -L${libdir} -lnifticdf
10+
Cflags: -I${includedir}

niftilib/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ set_target_properties(
1111
# Set library version when building shared libs.
1212
if(BUILD_SHARED_LIBS)
1313
get_lib_version_vars("nifti1_io_version.h" NIFTI_VERSION NIFTI_MAJOR_VERSION)
14+
configure_file(niftiio.pc.in niftiio.pc @ONLY)
1415
set_target_properties(${NIFTI_NIFTILIB_NAME}
1516
PROPERTIES
1617
${NIFTI_LIBRARY_PROPERTIES}
1718
VERSION ${NIFTI_VERSION}
1819
SOVERSION ${NIFTI_MAJOR_VERSION}
20+
PKG_CONFIG niftiio.pc
1921
)
2022
endif()
2123
install_nifti_target(${NIFTI_NIFTILIB_NAME})

niftilib/niftiio.pc.in

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
prefix=@CMAKE_INSTALL_PREFIX@
2+
exec_prefix="${prefix}"
3+
libdir="${prefix}/@NIFTI_INSTALL_LIBRARY_DIR@"
4+
includedir="${prefix}/@NIFTI_INSTALL_INCLUDE_DIR@"
5+
6+
Name: niftiio
7+
Description: Core i/o routines for reading and writing nifti-1 format files
8+
Version: @PROJECT_VERSION@
9+
Requires: znzlib
10+
Libs: -L${libdir} -lnitfiio
11+
Cflags: -I${includedir}

znzlib/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ target_compile_definitions(${NIFTI_ZNZLIB_NAME} PUBLIC ${ZNZ_COMPILE_DEF})
1111
# Set library version if building shared libs.
1212
if(BUILD_SHARED_LIBS)
1313
get_lib_version_vars("znzlib_version.h" ZNZLIB_VERSION ZNZLIB_MAJOR_VERSION)
14+
configure_file(znzlib.pc.in znzlib.pc @ONLY)
1415
set_target_properties(${NIFTI_ZNZLIB_NAME}
1516
PROPERTIES
1617
${NIFTI_LIBRARY_PROPERTIES}
1718
VERSION ${ZNZLIB_VERSION}
1819
SOVERSION ${ZNZLIB_MAJOR_VERSION}
20+
PKG_CONFIG znzlib.pc
1921
)
2022
endif()
2123
install_nifti_target(${NIFTI_ZNZLIB_NAME})

znzlib/znzlib.pc.in

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
prefix=@CMAKE_INSTALL_PREFIX@
2+
exec_prefix="${prefix}"
3+
libdir="${prefix}/@NIFTI_INSTALL_LIBRARY_DIR@"
4+
includedir="${prefix}/@NIFTI_INSTALL_INCLUDE_DIR@"
5+
zlib_support=true
6+
7+
Name: znzlib
8+
Description: Low level library for handling read/write of compressed files
9+
Version: @PROJECT_VERSION@
10+
Requires: zlib
11+
Libs: -L${libdir} -lznz
12+
Cflags: -I${includedir}

0 commit comments

Comments
 (0)