# openldap cmake based build system
# copyright (c) 2012 Patrick Spendrin <pspendrin@kde.org>

project(openldap)

cmake_minimum_required(VERSION 2.8)


# build options:
option(BUILD_REENTRANT "build a reentrant library" ON)
option(BUILD_THREADSAFE "build a threadsafe library" ON)
option(BUILD_TOOLS "build the ldap tools" ON)
option(LDAP_DEBUG "define this to add debugging code" ON)
option(LDAP_LIBS_DYNAMIC "define if LDAP libs are dynamic" ON)
option(LDAP_PF_INET6 "define to support PF_INET6" ON)
option(LDAP_PF_LOCAL "define to support PF_LOCAL" OFF) # FIXME sockaddr_un is missing?!?
option(LDAP_PROCTITLE "define this for LDAP process title support" ON)
option(LDAP_SLAPI "define this to add SLAPI code" OFF)
option(LDAP_SYSLOG "define this to add syslog code" OFF)

set(BINDIR "bin")
set(SBINDIR "bin")
set(DATADIR "share")
set(SYSCONFDIR "")
set(LIBEXECDIR "lib")
set(MODULEDIR "")
set(RUNDIR "")
set(LOCALEDIR "")

set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
include(MacroBoolTo01)

#undef LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS





# find required packages
find_package(OpenSSL REQUIRED)
# KDE doesn't provide another pcre library - so accomodate with pcre
find_package(PCRE REQUIRED)
find_package(Sasl2)

include_directories(${OPENSSL_INCLUDE_DIR} ${PCRE_INCLUDE_DIR})
include(ConfigureChecks.cmake)

if(NOT MINGW)
# specially for my friend Andy
add_definitions(-wd4996)
add_definitions(-Dstrncasecmp=_strnicmp -Dstrcasecmp=_stricmp)
endif()

set(INSTALL_TARGETS_DEFAULT_ARGS RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
if(LDAP_LIBS_DYNAMIC)
    set(LDAP_SHARED SHARED)
else(LDAP_LIBS_DYNAMIC)
    set(LDAP_SHARED STATIC)
endif(LDAP_LIBS_DYNAMIC)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})

add_subdirectory(include)
add_subdirectory(libraries)
if(BUILD_TOOLS)
    add_subdirectory(clients)
endif(BUILD_TOOLS)
