# set minimum version
project(apt)
-cmake_minimum_required(VERSION 3.3.0)
+cmake_minimum_required(VERSION 3.4.0)
-option(WITH_DOC "Build documentation." OFF)
+enable_testing()
+
+option(WITH_DOC "Build documentation." ON)
option(USE_NLS "Localisation support." ON)
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMake")
# Include stuff
include(Misc)
+include(Translations)
include(CheckIncludeFiles)
include(CheckFunctionExists)
include(CheckStructHasMember)
include(TestBigEndian)
find_package(Threads)
find_package(PkgConfig)
+find_package(LFS REQUIRED)
+
+# Add large file support
+add_compile_options(${LFS_COMPILE_OPTIONS})
+add_definitions(${LFS_DEFINITIONS})
+link_libraries(${LFS_LIBRARIES})
# Set compiler flags
set(CMAKE_CXX_STANDARD 11)
# apt-transport-https dependencies
-pkg_check_modules(CURL libcurl REQUIRED)
+find_package(CURL REQUIRED)
if (CURL_FOUND)
set(HAVE_CURL 1)
endif()
if (NOT HAVE_VFS_H AND NOT HAVE_MOUNT_H)
message(FATAL_ERROR "Can find neither statvfs() nor statfs()")
endif()
- configure_file(buildlib/statvfs.h.in ${PROJECT_BINARY_DIR}/include/statvfs.h @ONLY)
+ configure_file(CMake/statvfs.h.in ${PROJECT_BINARY_DIR}/include/statvfs.h COPYONLY)
endif()
CHECK_STRUCT_HAS_MEMBER("struct statfs" f_type sys/vfs.h HAVE_STRUCT_STATFS_F_TYPE)
check_function_exists(getresgid HAVE_GETRESGID)
check_function_exists(setresuid HAVE_SETRESUID)
check_function_exists(setresgid HAVE_SETRESGID)
+check_function_exists(ptsname_r HAVE_PTSNAME_R)
check_function_exists(timegm HAVE_TIMEGM)
test_big_endian(WORDS_BIGENDIAN)
endif()
# Configure some variables like package, version and architecture.
-set(PACKAGE "apt")
+set(PACKAGE ${PROJECT_NAME})
+set(PACKAGE_MAIL "APT Development Team <deity@lists.debian.org>")
+set(PACKAGE_VERSION "1.3~rc2")
-execute_process(COMMAND dpkg-parsechangelog -SVersion -l${PROJECT_SOURCE_DIR}/debian/changelog
- OUTPUT_VARIABLE PACKAGE_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
-execute_process(COMMAND dpkg-architecture -qDEB_HOST_ARCH
- OUTPUT_VARIABLE COMMON_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE)
+if (NOT DEFINED COMMON_ARCH)
+ execute_process(COMMAND dpkg-architecture -qDEB_HOST_ARCH
+ OUTPUT_VARIABLE COMMON_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE)
+endif()
# Configure our configuration headers (config.h and apti18n.h)
configure_file(CMake/config.h.in ${PROJECT_BINARY_DIR}/include/config.h)
add_subdirectory(apt-private)
add_subdirectory(apt-inst)
add_subdirectory(cmdline)
+add_subdirectory(completions)
+add_subdirectory(doc)
add_subdirectory(dselect)
add_subdirectory(ftparchive)
add_subdirectory(methods)
+add_subdirectory(po)
+add_subdirectory(test)
+
+# Link update-po4a into the update-po target
+add_dependencies(update-po update-po4a)
+
+# Create our directories.
+install_empty_directories(
+ ${CMAKE_INSTALL_FULL_SYSCONFDIR}/apt/apt.conf.d
+ ${CMAKE_INSTALL_FULL_SYSCONFDIR}/apt/preferences.d
+ ${CMAKE_INSTALL_FULL_SYSCONFDIR}/apt/sources.list.d
+ ${CMAKE_INSTALL_FULL_SYSCONFDIR}/apt/trusted.gpg.d
+ ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/cache/apt/archives/partial
+ ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/apt/lists/partial
+ ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/apt/mirrors/partial
+ ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/apt/periodic
+ ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/log/apt
+)