X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/389e8322fcd380d133892bc6f126e56737739fa5..ad5282bb0c97fd0254b20fb71a59d0f755c3ed65:/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 3263bea82..8c41534ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,6 @@ endif() # Include stuff include(Misc) -include(Translations) include(CheckIncludeFiles) include(CheckFunctionExists) include(CheckStructHasMember) @@ -27,6 +26,12 @@ include(GNUInstallDirs) 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) @@ -106,14 +111,50 @@ check_function_exists(ptsname_r HAVE_PTSNAME_R) check_function_exists(timegm HAVE_TIMEGM) test_big_endian(WORDS_BIGENDIAN) +# FreeBSD +add_definitions(-D_WITH_GETLINE=1) + if (CMAKE_USE_PTHREADS_INIT) set(HAVE_PTHREAD 1) endif() +CHECK_INCLUDE_FILES(machine/endian.h HAVE_MACHINE_ENDIAN_H) +CHECK_INCLUDE_FILES(sys/endian.h HAVE_SYS_ENDIAN_H) +CHECK_INCLUDE_FILES(endian.h HAVE_ENDIAN_H) +if (NOT HAVE_ENDIAN_H) + if (HAVE_MACHINE_ENDIAN_H OR HAVE_SYS_ENDIAN_H) + configure_file(CMake/endian.h.in ${PROJECT_BINARY_DIR}/include/endian.h) + else() + message(FATAL_ERROR "Cannot find endian.h") + endif() +endif() + + +include(CheckTypeSize) +set(CMAKE_EXTRA_INCLUDE_FILES "signal.h") +check_type_size("sig_t" SIG_T LANGUAGE "CXX") +check_type_size("sighandler_t" SIGHANDLER_T LANGUAGE "CXX") +set(CMAKE_EXTRA_INCLUDE_FILES) +if (NOT HAVE_SIGHANDLER_T) + if (HAVE_SIG_T) + add_definitions(-Dsighandler_t=sig_t) + else() + message(FATAL_ERROR "Platform defines neither sig_t nor sighandler_t") + endif() +endif() + +# Handle resolving +check_function_exists(res_init HAVE_LIBC_RESOLV) +if(HAVE_LIBC_RESOLV) + set(RESOLV_LIBRARIES) +else() + set(RESOLV_LIBRARIES -lresolv) +endif() + # Configure some variables like package, version and architecture. set(PACKAGE ${PROJECT_NAME}) set(PACKAGE_MAIL "APT Development Team ") -set(PACKAGE_VERSION "1.3~rc1") +set(PACKAGE_VERSION "1.3~rc2") if (NOT DEFINED COMMON_ARCH) execute_process(COMMAND dpkg-architecture -qDEB_HOST_ARCH @@ -133,12 +174,29 @@ add_subdirectory(apt-pkg) 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) +if (USE_NLS) +add_subdirectory(po) + # Link update-po4a into the update-po target add_dependencies(update-po update-po4a) +endif() + +# 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 +)