diff --git a/CMakeLists.txt b/CMakeLists.txt index 15b73bd..bb8d258 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,6 +73,7 @@ set_if_not_defined(NIFTI_INSTALL_RUNTIME_DIR bin) set_if_not_defined(NIFTI_INSTALL_LIBRARY_DIR lib) set_if_not_defined(NIFTI_INSTALL_ARCHIVE_DIR ${NIFTI_INSTALL_LIBRARY_DIR}) set_if_not_defined(NIFTI_INSTALL_INCLUDE_DIR include/nifti) +set_if_not_defined(NIFTI_INSTALL_PKGCONFIG_DIR ${NIFTI_INSTALL_LIBRARY_DIR}/pkgconfig) set_if_not_defined(NIFTI_INSTALL_MAN_DIR share/man/man1) set_if_not_defined(NIFTI_INSTALL_DOC_DIR share/doc/${PROJECT_NAME}) set_if_not_defined(NIFTI_ZLIB_LIBRARIES "") diff --git a/cmake/nifti_macros.cmake b/cmake/nifti_macros.cmake index f7fc910..cfe4cac 100644 --- a/cmake/nifti_macros.cmake +++ b/cmake/nifti_macros.cmake @@ -136,6 +136,10 @@ function(install_nifti_target target_name) INCLUDES DESTINATION ${NIFTI_INSTALL_INCLUDE_DIR} ) + + install(FILES $ + COMPONENT Development + DESTINATION ${NIFTI_INSTALL_PKGCONFIG_DIR}) endfunction() function(get_lib_version_var ver_header_text ver_type version_out) diff --git a/nifti2/CMakeLists.txt b/nifti2/CMakeLists.txt index 1950e6b..ab3cef9 100644 --- a/nifti2/CMakeLists.txt +++ b/nifti2/CMakeLists.txt @@ -2,11 +2,13 @@ set(NIFTI_NIFTILIB2_NAME ${NIFTI_PACKAGE_PREFIX}nifti2) add_nifti_library(${NIFTI_NIFTILIB2_NAME} nifti2_io.c ) target_link_libraries( ${NIFTI_NIFTILIB2_NAME} PUBLIC ${NIFTI_PACKAGE_PREFIX}znz ${NIFTI_SYSTEM_MATH_LIB}) +configure_file(nifti2.pc.in nifti2.pc @ONLY) set_target_properties( ${NIFTI_NIFTILIB2_NAME} PROPERTIES PUBLIC_HEADER "${CMAKE_CURRENT_LIST_DIR}/nifti1.h;${CMAKE_CURRENT_LIST_DIR}/nifti2.h;${CMAKE_CURRENT_LIST_DIR}/nifti2_io.h" + PKG_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/nifti2.pc ) # Set library version when building shared libs. if(BUILD_SHARED_LIBS) diff --git a/nifti2/nifti2.pc.in b/nifti2/nifti2.pc.in new file mode 100644 index 0000000..5c6fa31 --- /dev/null +++ b/nifti2/nifti2.pc.in @@ -0,0 +1,11 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${prefix}/@NIFTI_INSTALL_LIBRARY_DIR@ +includedir=${prefix}/@NIFTI_INSTALL_INCLUDE_DIR@ + +Name: nifti2 +Description: Core i/o routines for reading and writing nifti-2 format files +Version: @PROJECT_VERSION@ +Requires: znzlib +Libs: -L${libdir} -lnifti2 +Cflags: -I${includedir} diff --git a/nifticdf/CMakeLists.txt b/nifticdf/CMakeLists.txt index 473be7e..ba83602 100644 --- a/nifticdf/CMakeLists.txt +++ b/nifticdf/CMakeLists.txt @@ -1,11 +1,13 @@ set(NIFTI_CDFLIB_NAME ${NIFTI_PACKAGE_PREFIX}nifticdf) add_nifti_library(${NIFTI_CDFLIB_NAME} nifticdf.c ) +configure_file(nifticdf.pc.in nifticdf.pc @ONLY) set_target_properties( ${NIFTI_CDFLIB_NAME} PROPERTIES PUBLIC_HEADER "${CMAKE_CURRENT_LIST_DIR}/nifticdf.h" + PKG_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/nifticdf.pc ) target_compile_options(${NIFTI_CDFLIB_NAME} PRIVATE "-D__COMPILE_UNUSED_FUNCTIONS__") target_link_libraries(${NIFTI_CDFLIB_NAME} PUBLIC ${NIFTI_PACKAGE_PREFIX}niftiio) diff --git a/nifticdf/nifticdf.pc.in b/nifticdf/nifticdf.pc.in new file mode 100644 index 0000000..ca2dff3 --- /dev/null +++ b/nifticdf/nifticdf.pc.in @@ -0,0 +1,10 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${prefix}/@NIFTI_INSTALL_LIBRARY_DIR@ +includedir=${prefix}/@NIFTI_INSTALL_INCLUDE_DIR@ + +Name: nifticdf +Description: Functions to compute cumulative distributions and their inverses +Version: @PROJECT_VERSION@ +Libs: -L${libdir} -lnifticdf +Cflags: -I${includedir} diff --git a/niftilib/CMakeLists.txt b/niftilib/CMakeLists.txt index aeee59f..2da81b7 100644 --- a/niftilib/CMakeLists.txt +++ b/niftilib/CMakeLists.txt @@ -2,11 +2,13 @@ set(NIFTI_NIFTILIB_NAME ${NIFTI_PACKAGE_PREFIX}niftiio) add_nifti_library(${NIFTI_NIFTILIB_NAME} nifti1_io.c ) target_link_libraries( ${NIFTI_NIFTILIB_NAME} PUBLIC ${NIFTI_PACKAGE_PREFIX}znz ${NIFTI_SYSTEM_MATH_LIB}) +configure_file(niftiio.pc.in niftiio.pc @ONLY) set_target_properties( ${NIFTI_NIFTILIB_NAME} PROPERTIES PUBLIC_HEADER "${CMAKE_CURRENT_LIST_DIR}/nifti1_io.h;${CMAKE_CURRENT_LIST_DIR}/nifti1.h" + PKG_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/niftiio.pc ) # Set library version when building shared libs. if(BUILD_SHARED_LIBS) diff --git a/niftilib/niftiio.pc.in b/niftilib/niftiio.pc.in new file mode 100644 index 0000000..8ab4587 --- /dev/null +++ b/niftilib/niftiio.pc.in @@ -0,0 +1,11 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${prefix}/@NIFTI_INSTALL_LIBRARY_DIR@ +includedir=${prefix}/@NIFTI_INSTALL_INCLUDE_DIR@ + +Name: niftiio +Description: Core i/o routines for reading and writing nifti-1 format files +Version: @PROJECT_VERSION@ +Requires: znzlib +Libs: -L${libdir} -lniftiio +Cflags: -I${includedir} diff --git a/znzlib/CMakeLists.txt b/znzlib/CMakeLists.txt index c188d9b..050ac20 100644 --- a/znzlib/CMakeLists.txt +++ b/znzlib/CMakeLists.txt @@ -2,10 +2,12 @@ set(NIFTI_ZNZLIB_NAME ${NIFTI_PACKAGE_PREFIX}znz) add_nifti_library(${NIFTI_ZNZLIB_NAME} znzlib.c ) target_link_libraries( ${NIFTI_ZNZLIB_NAME} PUBLIC ${NIFTI_ZLIB_LIBRARIES} ) +configure_file(znzlib.pc.in znzlib.pc @ONLY) set_target_properties( ${NIFTI_ZNZLIB_NAME} PROPERTIES PUBLIC_HEADER ${CMAKE_CURRENT_LIST_DIR}/znzlib.h + PKG_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/znzlib.pc ) target_compile_definitions(${NIFTI_ZNZLIB_NAME} PUBLIC ${ZNZ_COMPILE_DEF}) # Set library version if building shared libs. diff --git a/znzlib/znzlib.pc.in b/znzlib/znzlib.pc.in new file mode 100644 index 0000000..707f1d6 --- /dev/null +++ b/znzlib/znzlib.pc.in @@ -0,0 +1,12 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${prefix}/@NIFTI_INSTALL_LIBRARY_DIR@ +includedir=${prefix}/@NIFTI_INSTALL_INCLUDE_DIR@ +zlib_support=true + +Name: znzlib +Description: Low level library for handling read/write of compressed files +Version: @PROJECT_VERSION@ +Requires: zlib +Libs: -L${libdir} -lznz +Cflags: -I${includedir}