| # |
| # CMakeLists.txt for openwsman/ |
| # |
| |
| PROJECT(openwsman) |
| |
| cmake_minimum_required(VERSION 2.4) |
| |
| include(CTest) |
| enable_testing() |
| # |
| # cmake2.6: backward compatibility to cmake 2.4 |
| # |
| if(COMMAND cmake_policy) |
| cmake_policy(SET CMP0003 OLD) |
| endif(COMMAND cmake_policy) |
| |
| if(COMMAND cmake_policy) |
| cmake_policy(SET CMP0005 OLD) |
| endif(COMMAND cmake_policy) |
| |
| # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked |
| SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH}) |
| |
| INCLUDE( ${CMAKE_SOURCE_DIR}/VERSION.cmake ) |
| SET(VERSION "${OPENWSMAN_MAJOR}.${OPENWSMAN_MINOR}.${OPENWSMAN_PATCH}") |
| MESSAGE(STATUS "Version ${VERSION}") |
| SET(PACKAGE_VERSION \"${OPENWSMAN_MAJOR}.${OPENWSMAN_MINOR}\") |
| MESSAGE(STATUS "Package Version ${PACKAGE_VERSION}") |
| # build timestamp |
| EXECUTE_PROCESS(COMMAND "/bin/date" "+%Y%m%d%H%M" OUTPUT_VARIABLE BUILD_DATE) |
| STRING(REPLACE "\n" "" PACKAGE_BUILDTS "${BUILD_DATE}") |
| MESSAGE(STATUS "Package build timestamp ${PACKAGE_BUILDTS}") |
| |
| # Package architecture |
| IF ( NOT DEFINED PACKAGE_ARCHITECTURE ) |
| EXECUTE_PROCESS(COMMAND "/bin/uname" "-m" OUTPUT_VARIABLE PACKAGE_ARCHITECTURE) |
| ENDIF ( NOT DEFINED PACKAGE_ARCHITECTURE ) |
| MESSAGE(STATUS "Building for ${PACKAGE_ARCHITECTURE}" ) |
| |
| |
| # Library path (lib / lib64 ) |
| |
| IF ( DEFINED LIB ) |
| SET ( LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIB}" ) |
| ELSE ( DEFINED LIB ) |
| IF (CMAKE_SIZEOF_VOID_P MATCHES "8") |
| SET( LIB_SUFFIX "64" ) |
| ENDIF(CMAKE_SIZEOF_VOID_P MATCHES "8") |
| SET ( LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" ) |
| ENDIF ( DEFINED LIB ) |
| MESSAGE(STATUS "Libraries will be installed in ${LIB_INSTALL_DIR}" ) |
| SET( BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin" ) |
| SET( INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include" ) |
| SET( SYSCONFDIR "/etc" ) |
| SET( WSMANCONF_DIR "${SYSCONFDIR}/openwsman" ) |
| SET( DEFAULT_CONFIG_FILE "\"${WSMANCONF_DIR}/openwsman.conf\"") |
| SET( DEFAULT_CLIENT_CONFIG_FILE "\"${WSMANCONF_DIR}/openwsman_client.conf\"") |
| SET( PACKAGE_SUBSCRIPTION_DIR "/var/lib/openwsman/subscriptions" ) |
| SET( PACKAGE_PLUGIN_DIR "${LIB_INSTALL_DIR}/openwsman/plugins" ) |
| SET( PACKAGE_AUTH_DIR "${LIB_INSTALL_DIR}/openwsman/authenticators" ) |
| |
| |
| # Macro for error message when header files not present, but build option |
| # explicitly declared |
| MACRO(NO_HEADERS_WARNING_EXPL optionName pkgName) |
| MESSAGE(STATUS "************ WARNING *************") |
| MESSAGE(STATUS "Didn't Find ${pkgName} Headers... ") |
| MESSAGE(STATUS "${optionName} explicitly requested.") |
| MESSAGE(STATUS "Make sure ${pkgName} header files are available and run cmake again.") |
| MESSAGE(STATUS "************************************") |
| SET(HAVE_WARNINGS YES) |
| ENDMACRO(NO_HEADERS_WARNING_EXPL) |
| |
| # Macro for error message when header files not present, but build option |
| # not explicitly declared |
| MACRO(NO_HEADERS_WARNING optionName pkgName) |
| SET(${optionName} NO) |
| SET(HAVE_WARNINGS YES) |
| MESSAGE(STATUS "************ WARNING *************") |
| MESSAGE(STATUS "Didn't Find ${pkgName} Headers... Not Building ${pkgName} Bindings") |
| MESSAGE(STATUS "************************************") |
| ENDMACRO(NO_HEADERS_WARNING) |
| |
| # For binding options, see if it is explicitly set on the command line, |
| # before defining the option with a default. Then if we don't find |
| # the headers: if it was explicitly set then fail, otherwise |
| # just give a warning message |
| SET( BUILD_PYTHON_EXPLICIT ${BUILD_PYTHON}) |
| SET( BUILD_RUBY_EXPLICIT ${BUILD_RUBY}) |
| SET( BUILD_PERL_EXPLICIT ${BUILD_PERL}) |
| SET( BUILD_JAVA_EXPLICIT ${BUILD_JAVA}) |
| |
| # options |
| |
| OPTION( BUILD_LIBCIM "Build CIM plugin" YES ) |
| OPTION( BUILD_EXAMPLES "Build examples" YES ) |
| OPTION( BUILD_PYTHON "Build Python bindings" YES ) |
| OPTION( BUILD_RUBY "Build Ruby bindings" YES ) |
| OPTION( BUILD_PERL "Build Perl bindings" YES ) |
| OPTION( BUILD_JAVA "Build Java bindings" YES ) |
| OPTION( BUILD_CSHARP "Build C# bindings" YES) |
| OPTION( BUILD_CUNIT_TESTS "Build serialization tests" NO ) |
| OPTION( DISABLE_PLUGINS "Do not build plugins" NO ) |
| OPTION( BUILD_SWIG_PLUGIN "Build SWIG plugin" YES ) |
| OPTION( DISABLE_SERVER "Do not build server component" NO ) |
| OPTION( ENABLE_EVENTING_SUPPORT "WS-Eventing wanted" YES ) |
| OPTION( WSMAN_DEBUG_VERBOSE "Verbose debug logging" NO ) |
| OPTION( ENABLE_IPV6 "Enable IPv6 support" YES ) |
| |
| IF (ENABLE_EVENTING_SUPPORT) |
| SET(ENABLE_EVENTING_SUPPORT 1) |
| ELSE (ENABLE_EVENTING_SUPPORT) |
| SET(ENABLE_EVENTING_SUPPORT 0) |
| ENDIF (ENABLE_EVENTING_SUPPORT) |
| |
| IF(WSMAN_DEBUG_VERBOSE) |
| SET(WSMAN_DEBUG_VERBOSE 1) |
| ELSE(WSMAN_DEBUG_VERBOSE) |
| SET(WSMAN_DEBUG_VERBOSE 0) |
| ENDIF(WSMAN_DEBUG_VERBOSE) |
| |
| OPTION( USE_PAM "Use PAM authentication" YES ) |
| IF( USE_PAM ) |
| FIND_LIBRARY( HAVE_LIBPAM "pam" ) |
| IF(HAVE_LIBPAM) |
| SET( HAVE_PAM 1 ) |
| MESSAGE(STATUS "building PAM authentication" ) |
| ELSE(HAVE_LIBPAM) |
| MESSAGE(WARNING " libpam not found, disabling PAM authentication" ) |
| SET( HAVE_PAM 1 ) |
| ENDIF(HAVE_LIBPAM) |
| ELSE( USE_PAM ) |
| SET( HAVE_PAM 0 ) |
| MESSAGE(STATUS "Disabling PAM authentication" ) |
| ENDIF( USE_PAM ) |
| |
| INCLUDE(FindOpenSSL) |
| IF(OPENSSL_FOUND) |
| SET(HAVE_SSL 1) |
| SET(USE_OPENSSL 1) |
| ENDIF(OPENSSL_FOUND) |
| |
| IF( BUILD_RUBY ) |
| INCLUDE(FindRuby) |
| EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['sitearchdir']" |
| OUTPUT_VARIABLE RUBY_SITEARCH_DIR) |
| MESSAGE(STATUS "Building Ruby bindings" ) |
| IF(NOT RUBY_INCLUDE_PATH) |
| IF(BUILD_RUBY_EXPLICIT) |
| NO_HEADERS_WARNING_EXPL(BUILD_RUBY Ruby) |
| ELSE(BUILD_RUBY_EXPLICIT) |
| NO_HEADERS_WARNING(BUILD_RUBY Ruby) |
| ENDIF(BUILD_RUBY_EXPLICIT) |
| ENDIF(NOT RUBY_INCLUDE_PATH ) |
| ENDIF( BUILD_RUBY ) |
| |
| IF( BUILD_PYTHON ) |
| MESSAGE(STATUS "Building Python bindings" ) |
| FIND_PACKAGE(PythonLibs) |
| IF (PYTHON_LIBRARY) |
| FIND_PACKAGE(PythonInterp REQUIRED) |
| MESSAGE(STATUS "Found PythonLibs...") |
| FIND_PACKAGE(PythonLinkLibs) |
| IF (PYTHON_LINK_LIBS) |
| MESSAGE(STATUS "Building Python...") |
| ENDIF (PYTHON_LINK_LIBS) |
| ENDIF (PYTHON_LIBRARY) |
| IF(NOT PYTHON_INCLUDE_PATH ) |
| IF(BUILD_PYTHON_EXPLICIT) |
| NO_HEADERS_WARNING_EXPL(BUILD_PYTHON Python) |
| ELSE(BUILD_PYTHON_EXPLICIT) |
| NO_HEADERS_WARNING(BUILD_PYTHON Python) |
| ENDIF(BUILD_PYTHON_EXPLICIT) |
| ENDIF(NOT PYTHON_INCLUDE_PATH ) |
| ENDIF( BUILD_PYTHON ) |
| |
| IF( BUILD_PERL ) |
| INCLUDE(FindPerl) |
| IF(PERL_EXECUTABLE) |
| MESSAGE(STATUS "Building Perl bindings" ) |
| ELSE(PERL_EXECUTABLE) |
| MESSAGE(WARNING "Perl not found" ) |
| ENDIF(PERL_EXECUTABLE) |
| ENDIF( BUILD_PERL ) |
| |
| IF( BUILD_JAVA ) |
| INCLUDE(FindJava) |
| IF(JAVA_COMPILE) |
| INCLUDE(FindJNI) |
| IF(JNI_INCLUDE_DIRS) |
| MESSAGE(STATUS "Building Java bindings" ) |
| ELSE(JNI_INCLUDE_DIRS) |
| MESSAGE(WARNING " Java jni.h not found" ) |
| SET( BUILD_JAVA "NO" ) |
| ENDIF(JNI_INCLUDE_DIRS) |
| ELSE(JAVA_COMPILE) |
| MESSAGE(WARNING " Java compiler not found" ) |
| SET( BUILD_JAVA "NO" ) |
| ENDIF(JAVA_COMPILE) |
| ENDIF( BUILD_JAVA ) |
| |
| # swig |
| |
| FIND_PACKAGE(SWIG) |
| IF( NOT SWIG_EXECUTABLE) |
| FIND_PROGRAM(SWIG_EXECUTABLE |
| NAMES swig-1.3 swig |
| PATHS ${SWIG_DIR} ${SWIG_DIR}/.. ${SWIG_DIR}/../../bin /usr/bin /usr/local/bin ${CMAKE_INSTALL_PREFIX}/bin |
| ) |
| ENDIF( NOT SWIG_EXECUTABLE) |
| |
| IF ( NOT SWIG_EXECUTABLE ) |
| MESSAGE( STATUS "SWIG not found, skipping bindings." ) |
| ELSE ( NOT SWIG_EXECUTABLE ) |
| MESSAGE( STATUS "SWIG found at ${SWIG_EXECUTABLE}" ) |
| ADD_SUBDIRECTORY(bindings) |
| ENDIF ( NOT SWIG_EXECUTABLE ) |
| |
| # curl |
| |
| INCLUDE(FindCURL) |
| IF ( NOT CURL_FOUND) |
| MESSAGE( FATAL_ERROR " curl not found" ) |
| ELSE ( NOT CURL_FOUND) |
| INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR}) |
| ENDIF( NOT CURL_FOUND) |
| |
| # xml2 |
| |
| INCLUDE(FindLibXml2) |
| IF ( NOT LIBXML2_FOUND) |
| MESSAGE( FATAL_ERROR " libxml2 not found" ) |
| ELSE ( NOT LIBXML2_FOUND) |
| INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) |
| ENDIF( NOT LIBXML2_FOUND) |
| |
| # pthreads |
| |
| INCLUDE(FindThreads) |
| IF( NOT CMAKE_USE_PTHREADS_INIT ) |
| MESSAGE( FATAL_ERROR " openwsman needs pthread" ) |
| ELSE( NOT CMAKE_USE_PTHREADS_INIT ) |
| SET(USE_PTHREAD TRUE) |
| ENDIF( NOT CMAKE_USE_PTHREADS_INIT ) |
| |
| # dl |
| |
| FIND_LIBRARY( HAVE_LIBDL "dl" ) |
| IF(HAVE_LIBDL) |
| SET(DL_LIBRARIES ${HAVE_LIBDL}) |
| SET(HAVE_LIBDL 1) |
| ELSE(HAVE_LIBDL) |
| SET(HAVE_LIBDL 0) |
| ENDIF(HAVE_LIBDL) |
| |
| # crypt |
| |
| FIND_LIBRARY( HAVE_LIBCRYPT "crypt" ) |
| IF(HAVE_LIBCRYPT) |
| SET(CRYPT_LIBRARIES ${HAVE_LIBCRYPT}) |
| SET(HAVE_LIBCRYPT 1) |
| ELSE(HAVE_LIBCRYPT) |
| SET(HAVE_LIBCRYPT 0) |
| ENDIF(HAVE_LIBCRYPT) |
| |
| # nsl |
| |
| FIND_LIBRARY( HAVE_LIBNSL "nsl" ) |
| IF(HAVE_LIBNSL) |
| SET(HAVE_LIBNSL 1) |
| ELSE(HAVE_LIBNSL) |
| SET(HAVE_LIBNSL 0) |
| ENDIF(HAVE_LIBNSL) |
| |
| # socket |
| |
| FIND_LIBRARY( HAVE_LIBSOCKET "socket" ) |
| IF(HAVE_LIBSOCKET) |
| SET(HAVE_LIBSOCKET 1) |
| ELSE(HAVE_LIBSOCKET) |
| SET(HAVE_LIBSOCKET 0) |
| ENDIF(HAVE_LIBSOCKET) |
| |
| # cmpisfcc |
| IF(BUILD_LIBCIM) |
| FIND_LIBRARY( SFCC_LIBRARIES "cmpisfcc" REQUIRED ) |
| ENDIF(BUILD_LIBCIM) |
| |
| # Various include files |
| |
| INCLUDE(CheckIncludeFile) |
| |
| # |
| # The wsman_config file checks include file existance via "#if", |
| # requiring a 0/1 argument |
| # However CHECK_INCLUDE_FILE , returns ""/"1" resulting in |
| # an empty argument to "#if" in the 'false' case |
| # The code below ensures that "HAVE_xxx" is set to "0" or "1" |
| # |
| |
| SET (FILES_TO_TEST "crypt.h" "ctype.h" "CUnit/Basic.h" "dirent.h" "dlfcn.h" "ifaddrs.h" "inttypes.h" "memory.h" "netinet/in.h" "net/if_dl.h" "net/if.h" "pam/pam_appl.h" "pam/pam_misc.h" "pthread.h" "security/pam_appl.h" "security/pam_misc.h" "stdarg.h" "stdint.h" "stdlib.h" "strings.h" "string.h" "sys/ioctl.h" "sys/resource.h" "sys/select.h" "sys/sendfile.h" "sys/signal.h" "sys/socket.h" "sys/sockio.h" "sys/stat.h" "sys/types.h" "unistd.h" "vararg.h" ) |
| #SET(FILES_TO_TEST "crypt.h") |
| FOREACH( FILE ${FILES_TO_TEST}) |
| STRING(REGEX REPLACE "\\." "_" FILEDOT ${FILE}) |
| STRING(REGEX REPLACE "/" "_" FILESLASH ${FILEDOT}) |
| STRING(TOUPPER ${FILESLASH} UPNAME) |
| # MESSAGE(STATUS "Looking for ${FILE} as ${UPNAME}") |
| SET(HAVENAME "HAVE_${UPNAME}") |
| CHECK_INCLUDE_FILE( "${FILE}" HAVE_${FILE}_FILE ) |
| IF(HAVE_${FILE}_FILE) |
| SET(${HAVENAME} 1) |
| ELSE(HAVE_${FILE}_FILE) |
| SET(${HAVENAME} 0) |
| ENDIF(HAVE_${FILE}_FILE) |
| ENDFOREACH( FILE ${FILES_TO_TEST}) |
| |
| #/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ |
| CHECK_INCLUDE_FILE( "sys/time.h" TIME_WITH_SYS_TIME ) |
| IF(NOT TIME_WITH_SYS_TIME) |
| SET(TIME_WITH_SYS_TIME 0) |
| ENDIF(NOT TIME_WITH_SYS_TIME) |
| |
| #/* Define ssize_t to int' if <sys/types.h> does not define. */ |
| SET(SSIZE_T_MISSING 0) |
| |
| # library functions |
| |
| INCLUDE(CheckFunctionExists) |
| CHECK_FUNCTION_EXISTS("getifaddrs" HAVE_GETIFADDRS) |
| #SIOCGIFHWADDR |
| #SIOCGARP |
| |
| SET( CRAY_STACKSEG_END 0 ) |
| |
| CHECK_FUNCTION_EXISTS( "alloca" HAVE_ALLOCA ) |
| IF (NOT HAVE_ALLOCA) |
| SET(HAVE_ALLOCA 0) |
| SET(C_ALLOCA 0) |
| CHECK_INCLUDE_FILE( "alloca.h" HAVE_ALLOCA_H ) |
| ENDIF (NOT HAVE_ALLOCA) |
| |
| # |
| # The wsman_config file checks functions existance via "#if", |
| # requiring a 0/1 argument |
| # CHECK_FUNCTION_EXISTS however, returns ""/"1" resulting in |
| # an empty argument to "#if" in the 'false' case |
| # The code below ensures that "HAVE_xxx" is set to "0" or "1" |
| # |
| |
| SET (FUNCS_TO_TEST "bcopy" "crypt" "daemon" "fnmatch" "getaddrinfo" "getnameinfo" "getpid" "gettimeofday" "gmtime_r" "inet_aton" "inet_ntop" "inet_pton" "sleep" "srandom" "strsep" "strtok_r" "syslog" "timegm" "memmove" "unlink" "va_copy" ) |
| FOREACH( FUNC ${FUNCS_TO_TEST}) |
| STRING(TOUPPER ${FUNC} UPNAME) |
| SET(HAVENAME "HAVE_${UPNAME}") |
| CHECK_FUNCTION_EXISTS( "${FUNC}" HAVE_FUNC ) |
| IF(HAVE_FUNC) |
| SET(${HAVENAME} 1) |
| ELSE(HAVE_FUNC) |
| SET(${HAVENAME} 0) |
| ENDIF(HAVE_FUNC) |
| ENDFOREACH( FUNC ${FUNCS_TO_TEST}) |
| |
| |
| # types |
| |
| INCLUDE(CheckTypeSize) |
| SET( CMAKE_REQUIRED_IUNCLUDE "/usr/include/netinet" ) |
| |
| # |
| # The wsman_config file checks type existance via "#if", |
| # requiring a 0/1 argument |
| # CHECK_TYPE_SIZE however, returns ""/"1" resulting in |
| # an empty argument to "#if" in the 'false' case |
| # The code below ensures that "HAVE_xxx" is set to "0" or "1" |
| # |
| |
| SET (TYPES_TO_TEST "in_addr_t" "in_port_t" "sa_family_t" "int" "long" "long long" "short") |
| FOREACH( TYPE ${TYPES_TO_TEST}) |
| STRING(TOUPPER ${TYPE} UPNAME) |
| STRING(REGEX REPLACE " " "_" UPNAME ${UPNAME}) |
| SET(HAVENAME "HAVE_${UPNAME}") |
| CHECK_TYPE_SIZE( "${TYPE}" HAVE_TYPE ) |
| MESSAGE(STATUS "Check type ${TYPE} as ${HAVENAME}") |
| IF(HAVE_TYPE) |
| SET(${HAVENAME} 1) |
| ELSE(HAVE_TYPE) |
| SET(${HAVENAME} 0) |
| ENDIF(HAVE_TYPE) |
| ENDFOREACH( TYPE ${TYPES_TO_TEST}) |
| |
| |
| INCLUDE(CheckStructHasMember) |
| # Check if struct sockaddr contains sa_len |
| CHECK_STRUCT_HAS_MEMBER("struct sockaddr" sa_len sys/socket.h HAVE_SA_LEN) |
| IF(HAVE_SA_LEN) |
| SET(HAVE_SA_LEN 1) |
| ELSE(HAVE_SA_LEN) |
| SET(HAVE_SA_LEN 0) |
| ENDIF(HAVE_SA_LEN) |
| |
| IF (ENABLE_IPV6) |
| # Check if struct sockaddr_in6 contains sin6 |
| CHECK_STRUCT_HAS_MEMBER("struct sockaddr_in6" sin6_addr netinet/in.h HAVE_IPV6) |
| |
| IF (HAVE_IPV6) |
| SET(ENABLE_IPV6 1) |
| ELSE (HAVE_IPV6) |
| MESSAGE( SEND_ERROR " IPv6 not supported by system, disabling" ) |
| SET(ENABLE_IPV6 0) |
| ENDIF (HAVE_IPV6) |
| ELSE (ENABLE_IPV6) |
| SET(ENABLE_IPV6 0) |
| ENDIF (ENABLE_IPV6) |
| |
| # |
| #/* Define to 1 if you have the ANSI C header files. */ |
| # STDC_HEADERS |
| SET(STDC_HEADERS 1) |
| |
| #################################################################### |
| # CONFIGURATION # |
| #################################################################### |
| |
| SET(CMAKE_VERBOSE_MAKEFILE OFF) |
| |
| ADD_DEFINITIONS( -DHAVE_CONFIG_H ) |
| |
| SET(PACKAGE "openwsman") |
| SET(PACKAGE_BUGREPORT "\"www.openwsman.org\"") |
| SET(PACKAGE_NAME "\"${PACKAGE}\"") |
| SET(PACKAGE_STRING "\"WS-Management for all\"") |
| SET(PACKAGE_TARNAME "\"openwsman-${VERSION}.tar.bz2\"") |
| |
| SET("prefix" ${CMAKE_INSTALL_PREFIX}) |
| SET("includedir" ${CMAKE_INSTALL_PREFIX}/include) |
| SET("libdir" ${LIB_INSTALL_DIR}) |
| SET(WSMAN_PKG wsman) |
| SET(WSMAN_CLIENT_PKG wsman_client) |
| SET(WSMAN_CLIENT_TRANSPORT_PKG wsman_curl_client_transport) |
| |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/wsman_config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/wsman_config.h) |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/openwsman.pc.in ${CMAKE_CURRENT_BINARY_DIR}/openwsman.pc) |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/openwsman++.pc.in ${CMAKE_CURRENT_BINARY_DIR}/openwsman++.pc) |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/openwsman-server.pc.in ${CMAKE_CURRENT_BINARY_DIR}/openwsman-server.pc) |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/package/openwsman.spec.in ${CMAKE_CURRENT_BINARY_DIR}/package/openwsman.spec) |
| |
| INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/openwsman.pc |
| ${CMAKE_CURRENT_BINARY_DIR}/openwsman++.pc |
| ${CMAKE_CURRENT_BINARY_DIR}/openwsman-server.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) |
| |
| add_subdirectory(include) |
| add_subdirectory(src) |
| add_subdirectory(doc) |
| add_subdirectory(etc) |
| add_subdirectory(tests) |
| |
| |
| IF ( BUILD_EXAMPLES ) |
| add_subdirectory(examples) |
| ENDIF ( BUILD_EXAMPLES ) |
| |
| INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/include ) |
| |
| SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Woverloaded-virtual" ) |
| SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall" ) |
| SET( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -O3" ) |
| SET( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O3" ) |
| |
| #################################################################### |
| # PACKAGING # |
| #################################################################### |
| SET(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 1) |
| SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Web Services for Management") |
| SET(CPACK_PACKAGE_VENDOR "openwsman.org") |
| SET(CPACK_PACKAGE_VERSION_MAJOR ${OPENWSMAN_MAJOR}) |
| SET(CPACK_PACKAGE_VERSION_MINOR ${OPENWSMAN_MINOR}) |
| SET(CPACK_PACKAGE_VERSION_PATCH ${OPENWSMAN_PATCH}) |
| SET(CPACK_GENERATOR "TBZ2") |
| SET(CPACK_SOURCE_GENERATOR "TBZ2") |
| SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${PACKAGE}-${VERSION}" ) |
| MESSAGE(STATUS "Package file ${CPACK_SOURCE_PACKAGE_FILE_NAME}") |
| |
| # The following components are regex's to match anywhere (unless anchored) |
| # in absolute path + filename to find files or directories to be excluded |
| # from source tarball. |
| SET (CPACK_SOURCE_IGNORE_FILES |
| #git files |
| "/.git" |
| "\\\\.gitignore$" |
| #svn files |
| "\\\\.svn/" |
| "\\\\.cvsignore$" |
| # temporary files |
| "\\\\.swp$" |
| # backup files |
| "~$" |
| # eclipse files |
| "\\\\.cdtproject$" |
| "\\\\.cproject$" |
| "\\\\.project$" |
| "\\\\.settings/" |
| # others |
| "\\\\.#" |
| "/#" |
| "/build/" |
| "/_build/" |
| "/\\\\.git/" |
| # used before |
| "/CVS/" |
| "/\\\\.libs/" |
| "/\\\\.deps/" |
| "\\\\.o$" |
| "\\\\.lo$" |
| "\\\\.la$" |
| "Makefile\\\\.in$" |
| "Makefile$" |
| # autotool |
| "/m4/" |
| "autom4te.cache" |
| "config.log" |
| "config.h$" |
| "configure$" |
| "config.status" |
| "depcomp" |
| "config.guess" |
| "install.sh" |
| "libtool" |
| # generated |
| "\\\\.bz2$" |
| "\\\\.class$" |
| "/bindings/ruby/rdoc/" |
| ) |
| |
| INCLUDE(CPack) |
| |
| #################################################################### |
| |
| SET( DOC_INSTALL_DIR |
| "${CMAKE_INSTALL_PREFIX}/share/doc/packages/${PACKAGE}" |
| CACHE PATH "The install dir for documentation (default prefix/share/doc/packages/${PACKAGE})" |
| FORCE |
| ) |
| |
| IF(HAVE_WARNINGS) |
| MESSAGE(STATUS " ************ NOTE: ************") |
| MESSAGE(STATUS " Warnings occurred during cmake configuration... Please see output") |
| MESSAGE(STATUS " *******************************") |
| ENDIF(HAVE_WARNINGS) |