2009-02-02 14:44:46 +00:00
project ( libssh C )
# Required cmake version
cmake_minimum_required ( VERSION 2.6.0 )
# global needed variables
set ( APPLICATION_NAME ${ PROJECT_NAME } )
2009-07-25 16:32:10 +02:00
set ( APPLICATION_VERSION "0.4.0" )
2009-02-02 14:44:46 +00:00
set ( APPLICATION_VERSION_MAJOR "0" )
2009-07-25 16:32:10 +02:00
set ( APPLICATION_VERSION_MINOR "4" )
2009-02-02 14:44:46 +00:00
set ( APPLICATION_VERSION_PATCH "0" )
set ( LIBRARY_VERSION "3.0.0" )
set ( LIBRARY_SOVERSION "3" )
# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
set ( CMAKE_MODULE_PATH
$ { C M A K E _ S O U R C E _ D I R } / c m a k e / M o d u l e s
)
# add definitions
include ( DefineCMakeDefaults )
include ( DefineCompilerFlags )
include ( DefineInstallationPaths )
include ( DefineOptions.cmake )
include ( CPackConfig.cmake )
# disallow in-source build
include ( MacroEnsureOutOfSourceBuild )
macro_ensure_out_of_source_build ( "${PROJECT_NAME} requires an out of source build. Please create a separate build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there." )
# add macros
include ( MacroAddPlugin )
include ( MacroCopyFile )
# search for libraries
find_package ( ZLIB REQUIRED )
find_package ( OpenSSL )
2009-05-07 15:11:04 +00:00
if ( NOT CRYPTO_FOUND )
2009-02-02 14:44:46 +00:00
find_package ( GCrypt )
2009-05-07 15:07:54 +00:00
if ( NOT GCRYPT_FOUND )
2009-02-02 14:44:46 +00:00
message ( FATAL_ERROR "Could not find OpenSSL or GCrypt" )
2009-05-07 15:07:54 +00:00
endif ( NOT GCRYPT_FOUND )
2009-05-07 15:11:04 +00:00
endif ( NOT CRYPTO_FOUND )
2009-02-02 14:44:46 +00:00
# config.h checks
include ( ConfigureChecks.cmake )
configure_file ( config.h.cmake ${ CMAKE_CURRENT_BINARY_DIR } /config.h )
# check subdirectories
2009-02-03 10:43:45 +00:00
add_subdirectory ( doc )
2009-02-02 14:44:46 +00:00
add_subdirectory ( include )
add_subdirectory ( libssh )
2009-07-25 17:03:01 +02:00
add_subdirectory ( examples )
add_subdirectory ( tests )
2009-02-02 14:44:46 +00:00
# build samples
include_directories ( ${ CMAKE_SOURCE_DIR } /include )
2009-03-08 14:05:41 +00:00
if ( UNIX AND NOT WIN32 )
2009-04-27 10:58:29 +00:00
if ( WITH_SFTP AND WITH_SERVER )
add_executable ( samplessh sample.c )
add_executable ( samplesshd samplesshd.c )
2009-02-02 14:44:46 +00:00
2009-04-27 10:58:29 +00:00
target_link_libraries ( samplessh ${ LIBSSH_SHARED_LIBRARY } )
target_link_libraries ( samplesshd ${ LIBSSH_SHARED_LIBRARY } )
endif ( WITH_SFTP AND WITH_SERVER )
2009-03-08 14:05:41 +00:00
endif ( UNIX AND NOT WIN32 )