fixed cmake files to support package export
parent
9d5427bbd4
commit
70801203e2
|
@ -82,14 +82,35 @@ if(ENABLE_UTILS)
|
||||||
add_subdirectory(utils)
|
add_subdirectory(utils)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# this will create build-tree-specific config file (so downstream client can use this specific build without having to install package)
|
||||||
|
export(EXPORT libnfs
|
||||||
|
NAMESPACE libnfs::
|
||||||
|
FILE "${CMAKE_CURRENT_BINARY_DIR}/libnfs-config.cmake")
|
||||||
|
|
||||||
|
# this will create relocatable config file in installation directory
|
||||||
|
install(EXPORT libnfs
|
||||||
|
DESTINATION "${INSTALL_CMAKE_DIR}"
|
||||||
|
NAMESPACE libnfs::
|
||||||
|
FILE libnfs-config.cmake)
|
||||||
|
|
||||||
|
# handle version file
|
||||||
include(CMakePackageConfigHelpers)
|
include(CMakePackageConfigHelpers)
|
||||||
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/libnfs-config-version.cmake
|
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/libnfs-config-version.cmake
|
||||||
VERSION ${PROJECT_VERSION}
|
VERSION ${PROJECT_VERSION}
|
||||||
COMPATIBILITY AnyNewerVersion)
|
COMPATIBILITY AnyNewerVersion)
|
||||||
|
|
||||||
|
install(FILES cmake/FindNFS.cmake
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/libnfs-config-version.cmake
|
||||||
|
DESTINATION ${INSTALL_CMAKE_DIR})
|
||||||
|
|
||||||
|
# handle pc-config files
|
||||||
configure_file(cmake/libnfs.pc.cmake
|
configure_file(cmake/libnfs.pc.cmake
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/libnfs.pc @ONLY)
|
${CMAKE_CURRENT_BINARY_DIR}/libnfs.pc @ONLY)
|
||||||
|
|
||||||
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libnfs.pc
|
||||||
|
DESTINATION ${INSTALL_PKGCONFIG_DIR})
|
||||||
|
|
||||||
|
# handle headers installation
|
||||||
install(DIRECTORY include/nfsc
|
install(DIRECTORY include/nfsc
|
||||||
DESTINATION ${INSTALL_INC_DIR})
|
DESTINATION ${INSTALL_INC_DIR})
|
||||||
|
|
||||||
|
@ -100,10 +121,3 @@ install(FILES mount/libnfs-raw-mount.h
|
||||||
portmap/libnfs-raw-portmap.h
|
portmap/libnfs-raw-portmap.h
|
||||||
rquota/libnfs-raw-rquota.h
|
rquota/libnfs-raw-rquota.h
|
||||||
DESTINATION ${INSTALL_INC_DIR}/nfsc)
|
DESTINATION ${INSTALL_INC_DIR}/nfsc)
|
||||||
|
|
||||||
install(FILES cmake/FindNFS.cmake
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/libnfs-config-version.cmake
|
|
||||||
DESTINATION ${INSTALL_CMAKE_DIR})
|
|
||||||
|
|
||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libnfs.pc
|
|
||||||
DESTINATION ${INSTALL_PKGCONFIG_DIR})
|
|
||||||
|
|
|
@ -7,9 +7,17 @@
|
||||||
# On return:
|
# On return:
|
||||||
# Library will be built and added to ${CORE_LIBRARIES}
|
# Library will be built and added to ${CORE_LIBRARIES}
|
||||||
function(core_add_library name)
|
function(core_add_library name)
|
||||||
set(name core_${name})
|
set(name nfs_${name})
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
add_library(${name} STATIC ${SOURCES} ${HEADERS})
|
add_library(${name} STATIC ${SOURCES} ${HEADERS})
|
||||||
target_include_directories(${name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(${name} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
|
||||||
set(CORE_LIBRARIES "${name};${CORE_LIBRARIES}" CACHE INTERNAL "")
|
set(CORE_LIBRARIES "${name};${CORE_LIBRARIES}" CACHE INTERNAL "")
|
||||||
|
|
||||||
|
# no need to install core libs if we build shared library
|
||||||
|
if(NOT BUILD_SHARED_LIBS)
|
||||||
|
install(TARGETS ${name} EXPORT libnfs
|
||||||
|
RUNTIME DESTINATION bin
|
||||||
|
ARCHIVE DESTINATION lib
|
||||||
|
LIBRARY DESTINATION lib)
|
||||||
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
|
@ -15,13 +15,12 @@ if(WIN32 AND BUILD_SHARED_LIBS)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(nfs ${SOURCES})
|
add_library(nfs ${SOURCES})
|
||||||
target_include_directories(nfs PUBLIC ../include)
|
target_link_libraries(nfs PRIVATE ${CORE_LIBRARIES} PUBLIC ${SYSTEM_LIBRARIES})
|
||||||
target_link_libraries(nfs PUBLIC ${CORE_LIBRARIES} ${SYSTEM_LIBRARIES})
|
|
||||||
set_target_properties(nfs PROPERTIES
|
set_target_properties(nfs PROPERTIES
|
||||||
VERSION ${PROJECT_VERSION}
|
VERSION ${PROJECT_VERSION}
|
||||||
SOVERSION ${SOVERSION})
|
SOVERSION ${SOVERSION})
|
||||||
|
|
||||||
install(TARGETS nfs EXPORT nfs
|
install(TARGETS nfs EXPORT libnfs
|
||||||
RUNTIME DESTINATION bin
|
RUNTIME DESTINATION bin
|
||||||
ARCHIVE DESTINATION lib
|
ARCHIVE DESTINATION lib
|
||||||
LIBRARY DESTINATION lib)
|
LIBRARY DESTINATION lib)
|
||||||
|
|
Loading…
Reference in New Issue