cmake_minimum_required(VERSION 3.10) project(mars_nwe) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) enable_language(C) SET (VERSION_MAJOR "0") SET (VERSION_MINOR "99") SET (VERSION_PATCH "26") SET (MARS_NWE_VERSION_BASE "${VERSION_MAJOR}.${VERSION_MINOR}.pl${VERSION_PATCH}") SET (MARS_NWE_VERSION "${MARS_NWE_VERSION_BASE}") find_package(Git QUIET) if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git") execute_process( COMMAND "${GIT_EXECUTABLE}" describe --tags --exact-match WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE GIT_EXACT_TAG OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) if(GIT_EXACT_TAG STREQUAL "v${MARS_NWE_VERSION_BASE}" OR GIT_EXACT_TAG STREQUAL "${MARS_NWE_VERSION_BASE}") set(MARS_NWE_VERSION "${MARS_NWE_VERSION_BASE}") else() execute_process( COMMAND "${GIT_EXECUTABLE}" rev-list --count HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE GIT_COMMIT_COUNT OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND "${GIT_EXECUTABLE}" rev-parse --short HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE GIT_SHORT_SHA OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND "${GIT_EXECUTABLE}" diff --quiet WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" RESULT_VARIABLE GIT_DIRTY_RESULT ) set(MARS_NWE_VERSION "${MARS_NWE_VERSION_BASE}-dev.${GIT_COMMIT_COUNT}-g${GIT_SHORT_SHA}") if(NOT GIT_DIRTY_RESULT EQUAL 0) string(APPEND MARS_NWE_VERSION "-dirty") endif() endif() endif() INCLUDE(${CMAKE_ROOT}/Modules/GNUInstallDirs.cmake) INCLUDE(${CMAKE_MODULE_PATH}/MarsNweInstallDirs.cmake) # Add options for build option(ENABLE_DEBUG "Should we build with Debug?" ON) option(ENABLE_DEBUG_DOSUTILS "Should we build with Mars Nwe Dosutils Debugging?" OFF) option(ENABLE_INTERNAL_RIP_SAP "Should we build Mars Nwe with Internal Router?" ON) option(ENABLE_SHADOW_PWD "Should we build Mars Nwe with Shadow Password Support?" ON) option(ENABLE_QUOTA_SUPPORT "Should we build Mars Nwe with Quota Support?" OFF) IF (ENABLE_DEBUG) SET (MARS_NWE_DEBUG "1") ELSE (ENABLE_DEBUG) SET (MARS_NWE_DEBUG "0") ENDIF (ENABLE_DEBUG) IF (ENABLE_DEBUG_DOSUTILS) SET (MARS_NWE_DEBUG_DOSUTILS "1") ELSE (ENABLE_DEBUG_DOSUTILS) SET (MARS_NWE_DEBUG_DOSUTILS "0") ENDIF (ENABLE_DEBUG_DOSUTILS) IF (ENABLE_INTERNAL_RIP_SAP) SET (MARS_NWE_INTERNAL_RIP_SAP "1") ELSE (ENABLE_INTERNAL_RIP_SAP) SET (MARS_NWE_INTERNAL_RIP_SAP "0") ENDIF (ENABLE_INTERNAL_RIP_SAP) IF (ENABLE_SHADOW_PWD) SET (MARS_NWE_SHADOW_PWD "1") ELSE (ENABLE_SHADOW_PWD) SET (MARS_NWE_SHADOW_PWD "0") ENDIF (ENABLE_SHADOW_PWD) IF (ENABLE_QUOTA_SUPPORT) SET (MARS_NWE_QUOTA_SUPPORT "1") ELSE (ENABLE_QUOTA_SUPPORT) SET (MARS_NWE_QUOTA_SUPPORT "0") ENDIF (ENABLE_QUOTA_SUPPORT) IF (NOT MAX_CONNECTIONS) SET (MAX_CONNECTIONS "50") ENDIF (NOT MAX_CONNECTIONS) IF (NOT MAX_VOLS) SET (MAX_VOLS "50") ENDIF (NOT MAX_VOLS) IF (NOT MAX_FILES) SET (MAX_FILES "256") ENDIF (NOT MAX_FILES) find_package(Crypt REQUIRED) find_package(GDBM REQUIRED) message(STATUS "Mars Nwe version: ${MARS_NWE_VERSION}") message(STATUS "bin: ${CMAKE_INSTALL_FULL_BINDIR}") message(STATUS "sbin: ${CMAKE_INSTALL_FULL_SBINDIR}") message(STATUS "lib: ${CMAKE_INSTALL_FULL_LIBDIR}") message(STATUS "include: ${CMAKE_INSTALL_FULL_INCLUDEDIR}") message(STATUS "libexec: ${CMAKE_INSTALL_FULL_LIBEXECDIR}") message(STATUS "doc: ${CMAKE_INSTALL_FULL_DOCDIR}") message(STATUS "man: ${CMAKE_INSTALL_FULL_MANDIR}") message(STATUS "sysconf: ${CMAKE_INSTALL_FULL_SYSCONFDIR}") message(STATUS "Mars Nwe libexec: ${MARS_NWE_INSTALL_FULL_LIBEXEC}") message(STATUS "Mars Nwe config: ${MARS_NWE_INSTALL_FULL_CONFDIR}") message(STATUS "Mars Nwe data: ${MARS_NWE_DATA_DIR}") message(STATUS "Mars Nwe log: ${MARS_NWE_LOG_DIR}") message(STATUS "Mars Nwe pid: ${MARS_NWE_PID_DIR}") # put the include dirs which are in the source or build tree # before all other include dirs, so the headers in the sources # are prefered over the already installed ones # since cmake 2.4.1 set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON) add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake") add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source) add_subdirectory(include) add_subdirectory(src) add_subdirectory(opt) add_subdirectory(sys) add_subdirectory(dosutils) add_subdirectory(mail) add_subdirectory(smart) SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MARtin Stovers NetWare-Emulator.") SET(CPACK_PACKAGE_VENDOR "http://www.compu-art.de/mars_nwe/") SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") set(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}") set(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}") set(CPACK_PACKAGE_VERSION_PATCH "pl${VERSION_PATCH}") set(CPACK_SOURCE_GENERATOR "TBZ2") SET(CPACK_PACKAGE_INSTALL_DIRECTORY "mars_nwe-${MARS_NWE_VERSION}") SET(CPACK_SOURCE_IGNORE_FILES "/build/" "/_build/" CMakeCache.txt CMakeFiles progress.make cmake_install.cmake CPackConfig.cmake CPackSourceConfig.cmake "\\\\.git" "\\\\.svn" "\\\\.swp$" "\\\\.cvs" "\\\\.tar.gz" "\\\\.o") set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${MARS_NWE_VERSION}") include(CPack)