cmake_minimum_required(VERSION 3.20) project(prozilla VERSION 2.2.7 LANGUAGES C CXX) include(GNUInstallDirs) # GNUInstallDirs historically expanded a /usr prefix to /usr/etc. System # configuration belongs in /etc on FHS systems, independent of /usr. if(CMAKE_INSTALL_PREFIX STREQUAL "/usr" AND CMAKE_INSTALL_SYSCONFDIR STREQUAL "etc") set(CMAKE_INSTALL_SYSCONFDIR "/etc" CACHE PATH "System configuration directory" FORCE) endif() include(CheckIncludeFile) include(CheckFunctionExists) find_package(Threads REQUIRED) find_package(Curses REQUIRED) find_package(Intl) find_package(libprozilla CONFIG REQUIRED) set(ENABLE_NLS ${Intl_FOUND}) option(PROZILLA_BUILD_CLI "Build the proz command-line client" ON) set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS ON) foreach(header assert.h arpa/inet.h ctype.h errno.h fcntl.h limits.h locale.h memory.h netdb.h netinet/in.h pthread.h pwd.h stdio.h stdlib.h string.h strings.h sys/socket.h sys/stat.h sys/time.h sys/types.h time.h unistd.h) string(TOUPPER "${header}" header_var) string(REGEX REPLACE "[^A-Z0-9]" "_" header_var "${header_var}") check_include_file("${header}" "HAVE_${header_var}") endforeach() foreach(function snprintf strdup strerror strncasecmp vsnprintf) string(TOUPPER "${function}" function_var) check_function_exists("${function}" "HAVE_${function_var}") endforeach() set(HAVE_CONFIG_H 1) set(STDC_HEADERS 1) set(HAVE_NCURSES_H ${CURSES_HAVE_NCURSES_H}) set(HAVE_CURSES_H ${CURSES_HAVE_CURSES_H}) set(HAVE_CURSES 1) set(HAVE_LIBNCURSES 1) set(PACKAGE "prozilla") set(PACKAGE_NAME "prozilla") set(PACKAGE_VERSION "${PROJECT_VERSION}") set(VERSION "${PROJECT_VERSION}") set(LOCALEDIR "${CMAKE_INSTALL_FULL_LOCALEDIR}") set(GLOBAL_CONF_FILE "${CMAKE_INSTALL_FULL_SYSCONFDIR}/prozilla.conf") configure_file(cmake/config.h.in generated/config.h) add_subdirectory(src) add_subdirectory(config) add_subdirectory(man) add_subdirectory(po) set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Multi-connection command-line download accelerator") set(CPACK_PACKAGE_CONTACT "prozilla-dev@disconnected-by-peer.at") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") set(CPACK_GENERATOR "TGZ;TXZ") set(CPACK_SOURCE_GENERATOR "TGZ;TXZ") set(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}") set(CPACK_SOURCE_IGNORE_FILES "/\\.git/" "/build/" "/_CPack_Packages/" "/CMakeFiles/" "/CMakeCache\\.txt$" "/cmake_install\\.cmake$" "/CPack(Config|SourceConfig)\\.cmake$" "~$" ${CPACK_SOURCE_IGNORE_FILES}) include(CPack)