1 cmake_minimum_required(VERSION 3.2)
7 set(SOVERSION 1 CACHE STRING "" FORCE)
9 set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "Installation directory for libraries")
10 set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
11 set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
12 set(INSTALL_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/cmake/libsmb2" CACHE PATH "Installation directory for cmake (.cmake) files")
14 option(BUILD_SHARED_LIBS "Build shared libraries" ON)
15 option(ENABLE_EXAMPLES "Build example programs" OFF)
17 list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules)
23 add_definitions(-DHAVE_LIBKRB5)
27 add_definitions(-DHAVE_OPENSSL_LIBS)
30 include(cmake/ConfigureChecks.cmake)
32 include_directories(${CMAKE_CURRENT_BINARY_DIR}
35 ${OPENSSL_INCLUDE_DIR})
37 set(core_DEPENDS ${GSSAPI_LIBRARIES} CACHE STRING "" FORCE)
39 if(CMAKE_SYSTEM_NAME MATCHES Windows)
40 list(APPEND CORE_LIBRARIES ws2_32.lib)
41 add_definitions(-DWIN32_LEAN_AND_MEAN -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS)
42 include_directories(include/msvc)
43 elseif(CMAKE_SYSTEM_NAME STREQUAL Solaris)
44 find_library(SOCKET_LIBRARY socket)
45 find_library(NSL_LIBRARY nsl)
46 list(APPEND CORE_LIBRARIES ${SOCKET_LIBRARY} ${NSL_LIBRARY})
50 add_subdirectory(examples)
55 include(CMakePackageConfigHelpers)
56 write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/libsmb2-config-version.cmake
57 VERSION ${PROJECT_VERSION}
58 COMPATIBILITY AnyNewerVersion)
60 configure_file(cmake/libsmb2.pc.cmake
61 ${CMAKE_CURRENT_BINARY_DIR}/libsmb2.pc @ONLY)
63 install(DIRECTORY include/smb2
64 DESTINATION ${INSTALL_INC_DIR})
66 install(FILES cmake/FindSMB2.cmake
67 ${CMAKE_CURRENT_BINARY_DIR}/libsmb2-config-version.cmake
68 DESTINATION ${INSTALL_CMAKE_DIR})
70 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libsmb2.pc
71 DESTINATION ${INSTALL_PKGCONFIG_DIR})