diff options
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 217 |
1 files changed, 0 insertions, 217 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 847978df..00000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,217 +0,0 @@ -cmake_minimum_required(VERSION 3.3) -list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) -include(ComputeVersion) -if (NOT VERSION_FOUND) - project(Dino LANGUAGES C CXX) -elseif (VERSION_IS_RELEASE) - project(Dino VERSION ${VERSION_FULL} LANGUAGES C CXX) -else () - project(Dino LANGUAGES C CXX) - set(PROJECT_VERSION ${VERSION_FULL}) -endif () - -# Prepare Plugins -set(DEFAULT_PLUGINS omemo;openpgp;http-files;ice;rtp) -foreach (plugin ${DEFAULT_PLUGINS}) - if ("$CACHE{DINO_PLUGIN_ENABLED_${plugin}}" STREQUAL "") - if (NOT DEFINED DINO_PLUGIN_ENABLED_${plugin}}) - set(DINO_PLUGIN_ENABLED_${plugin} "yes" CACHE BOOL "Enable plugin ${plugin}") - else () - set(DINO_PLUGIN_ENABLED_${plugin} "${DINO_PLUGIN_ENABLED_${plugin}}" CACHE BOOL "Enable plugin ${plugin}" FORCE) - endif () - if (DINO_PLUGIN_ENABLED_${plugin}) - message(STATUS "Enabled plugin: ${plugin}") - else () - message(STATUS "Disabled plugin: ${plugin}") - endif () - endif () -endforeach (plugin) - -if (DISABLED_PLUGINS) - foreach(plugin ${DISABLED_PLUGINS}) - set(DINO_PLUGIN_ENABLED_${plugin} "no" CACHE BOOL "Enable plugin ${plugin}" FORCE) - message(STATUS "Disabled plugin: ${plugin}") - endforeach(plugin) -endif (DISABLED_PLUGINS) - -if (ENABLED_PLUGINS) - foreach(plugin ${ENABLED_PLUGINS}) - set(DINO_PLUGIN_ENABLED_${plugin} "yes" CACHE BOOL "Enable plugin ${plugin}" FORCE) - message(STATUS "Enabled plugin: ${plugin}") - endforeach(plugin) -endif (ENABLED_PLUGINS) - -set(PLUGINS "") -get_cmake_property(all_variables VARIABLES) -foreach (variable_name ${all_variables}) - if (variable_name MATCHES "^DINO_PLUGIN_ENABLED_(.+)$" AND ${variable_name}) - list(APPEND PLUGINS ${CMAKE_MATCH_1}) - endif() -endforeach () -list(SORT PLUGINS) -string(REPLACE ";" ", " PLUGINS_TEXT "${PLUGINS}") - -message(STATUS "Configuring Dino ${PROJECT_VERSION} with plugins: ${PLUGINS_TEXT}") -message(WARNING "Using CMake, ./configure or make to build Dino is deprecated and will be removed before the 0.5 release. Use Meson instead.") - -# Prepare instal paths -macro(set_path what val desc) - if (NOT ${what}) - unset(${what} CACHE) - set(${what} ${val}) - endif () - if (NOT "${${what}}" STREQUAL "${_${what}_SET}") - message(STATUS "${desc}: ${${what}}") - set(_${what}_SET ${${what}} CACHE INTERNAL ${desc}) - endif() -endmacro(set_path) - -string(REGEX REPLACE "^liblib" "lib" LIBDIR_NAME "lib${LIB_SUFFIX}") -set_path(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" "Installation directory for architecture-independent files") -set_path(EXEC_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" "Installation directory for architecture-dependent files") -set_path(SHARE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/share" "Installation directory for read-only architecture-independent data") - -set_path(BIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/bin" "Installation directory for user executables") -set_path(DATA_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/dino" "Installation directory for dino-specific data") -set_path(APPDATA_FILE_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/metainfo" "Installation directory for .appdata.xml files") -set_path(DESKTOP_FILE_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/applications" "Installation directory for .desktop files") -set_path(SERVICE_FILE_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/dbus-1/services" "Installation directory for .service files") -set_path(ICON_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/icons" "Installation directory for icons") -set_path(INCLUDE_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/include" "Installation directory for C header files") -set_path(LIB_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/${LIBDIR_NAME}" "Installation directory for object code libraries") -set_path(LOCALE_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/locale" "Installation directory for locale files") -set_path(PLUGIN_INSTALL_DIR "${LIB_INSTALL_DIR}/dino/plugins" "Installation directory for dino plugin object code files") -set_path(VAPI_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/vala/vapi" "Installation directory for Vala API files") - -set(TARGET_INSTALL LIBRARY DESTINATION ${LIB_INSTALL_DIR} RUNTIME DESTINATION ${BIN_INSTALL_DIR} PUBLIC_HEADER DESTINATION ${INCLUDE_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) -set(PLUGIN_INSTALL LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR} RUNTIME DESTINATION ${PLUGIN_INSTALL_DIR}) - -include(CheckCCompilerFlag) -include(CheckCSourceCompiles) - -macro(AddCFlagIfSupported list flag) - string(REGEX REPLACE "[^a-z^A-Z^_^0-9]+" "_" flag_name ${flag}) - check_c_compiler_flag(${flag} COMPILER_SUPPORTS${flag_name}) - if (${COMPILER_SUPPORTS${flag_name}}) - set(${list} "${${list}} ${flag}") - endif () -endmacro() - - -if ("Ninja" STREQUAL ${CMAKE_GENERATOR}) - AddCFlagIfSupported(CMAKE_C_FLAGS -fdiagnostics-color) -endif () - -# Flags for all C files -AddCFlagIfSupported(CMAKE_C_FLAGS -Wall) -AddCFlagIfSupported(CMAKE_C_FLAGS -Wextra) -AddCFlagIfSupported(CMAKE_C_FLAGS -Werror=format-security) -AddCFlagIfSupported(CMAKE_C_FLAGS -Wno-duplicate-decl-specifier) -AddCFlagIfSupported(CMAKE_C_FLAGS -fno-omit-frame-pointer) - -if (NOT VALA_WARN) - set(VALA_WARN "conversion") -endif () -set(VALA_WARN "${VALA_WARN}" CACHE STRING "Which warnings to show when invoking C compiler on Vala compiler output") -set_property(CACHE VALA_WARN PROPERTY STRINGS "all;unused;qualifier;conversion;deprecated;format;none") - -# Vala generates some unused stuff -if (NOT ("all" IN_LIST VALA_WARN OR "unused" IN_LIST VALA_WARN)) - AddCFlagIfSupported(VALA_CFLAGS -Wno-unused-but-set-variable) - AddCFlagIfSupported(VALA_CFLAGS -Wno-unused-function) - AddCFlagIfSupported(VALA_CFLAGS -Wno-unused-label) - AddCFlagIfSupported(VALA_CFLAGS -Wno-unused-parameter) - AddCFlagIfSupported(VALA_CFLAGS -Wno-unused-value) - AddCFlagIfSupported(VALA_CFLAGS -Wno-unused-variable) -endif () - -if (NOT ("all" IN_LIST VALA_WARN OR "qualifier" IN_LIST VALA_WARN)) - AddCFlagIfSupported(VALA_CFLAGS -Wno-discarded-qualifiers) - AddCFlagIfSupported(VALA_CFLAGS -Wno-discarded-array-qualifiers) - AddCFlagIfSupported(VALA_CFLAGS -Wno-incompatible-pointer-types-discards-qualifiers) -endif () - -if (NOT ("all" IN_LIST VALA_WARN OR "deprecated" IN_LIST VALA_WARN)) - AddCFlagIfSupported(VALA_CFLAGS -Wno-deprecated-declarations) -endif () - -if (NOT ("all" IN_LIST VALA_WARN OR "format" IN_LIST VALA_WARN)) - AddCFlagIfSupported(VALA_CFLAGS -Wno-missing-braces) -endif () - -if (NOT ("all" IN_LIST VALA_WARN OR "conversion" IN_LIST VALA_WARN)) - AddCFlagIfSupported(VALA_CFLAGS -Wno-int-conversion) - AddCFlagIfSupported(VALA_CFLAGS -Wno-pointer-sign) - AddCFlagIfSupported(VALA_CFLAGS -Wno-incompatible-pointer-types) -endif () - -try_compile(__WITHOUT_FILE_OFFSET_BITS_64 ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/cmake/LargeFileOffsets.c COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}) -if (NOT __WITHOUT_FILE_OFFSET_BITS_64) - try_compile(__WITH_FILE_OFFSET_BITS_64 ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/cmake/LargeFileOffsets.c COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} -D_FILE_OFFSET_BITS=64) - - if (__WITH_FILE_OFFSET_BITS_64) - AddCFlagIfSupported(CMAKE_C_FLAGS -D_FILE_OFFSET_BITS=64) - message(STATUS "Enabled large file support using _FILE_OFFSET_BITS=64") - else (__WITH_FILE_OFFSET_BITS_64) - message(STATUS "Large file support not available") - endif (__WITH_FILE_OFFSET_BITS_64) - unset(__WITH_FILE_OFFSET_BITS_64) -endif (NOT __WITHOUT_FILE_OFFSET_BITS_64) -unset(__WITHOUT_FILE_OFFSET_BITS_64) - -if ($ENV{USE_CCACHE}) - # Configure CCache if available - find_program(CCACHE_BIN ccache) - mark_as_advanced(CCACHE_BIN) - if (CCACHE_BIN) - message(STATUS "Using ccache") - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE_BIN}) - set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE_BIN}) - else (CCACHE_BIN) - message(STATUS "USE_CCACHE was set but ccache was not found") - endif (CCACHE_BIN) -endif ($ENV{USE_CCACHE}) - -if (NOT NO_DEBUG) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g") - set(CMAKE_VALA_FLAGS "${CMAKE_VALA_FLAGS} -g") -endif (NOT NO_DEBUG) - -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) - -set(GLib_GLOBAL_VERSION 2.38) -set(ICU_GLOBAL_VERSION 57) -set(Adwaita_GLOBAL_VERSION 1.2) - -if (NOT VALA_EXECUTABLE) - unset(VALA_EXECUTABLE CACHE) -endif () - -find_package(Vala 0.34 REQUIRED) -if (VALA_VERSION VERSION_GREATER "0.34.90" AND VALA_VERSION VERSION_LESS "0.36.1" OR # Due to a bug on 0.36.0 (and pre-releases), we need to disable FAST_VAPI - VALA_VERSION VERSION_EQUAL "0.44.10" OR VALA_VERSION VERSION_EQUAL "0.46.4" OR VALA_VERSION VERSION_EQUAL "0.47.1" OR # See Dino issue #646 - VALA_VERSION VERSION_EQUAL "0.40.21" OR VALA_VERSION VERSION_EQUAL "0.46.8" OR VALA_VERSION VERSION_EQUAL "0.48.4") # See Dino issue #816 - set(DISABLE_FAST_VAPI yes) -endif () - -include(${VALA_USE_FILE}) -include(MultiFind) -include(GlibCompileResourcesSupport) - -find_package(GLib ${GLib_GLOBAL_VERSION} REQUIRED) -string(REGEX REPLACE "^([0-9]+)\\.[0-9]+(\\.[0-9]+)?" "\\1" GLib_MAJOR_VERSION "${GLib_VERSION}") -string(REGEX REPLACE "^[0-9]+\\.([0-9]+)(\\.[0-9]+)?" "\\1" GLib_MINOR_VERSION "${GLib_VERSION}") -math(EXPR GLib_LAST_RELEASE_MINOR_VERSION "${GLib_MINOR_VERSION} / 2 * 2") -set(CMAKE_VALA_FLAGS "${CMAKE_VALA_FLAGS} --target-glib=${GLib_MAJOR_VERSION}.${GLib_LAST_RELEASE_MINOR_VERSION}") - -add_subdirectory(qlite) -add_subdirectory(xmpp-vala) -add_subdirectory(libdino) -add_subdirectory(main) -add_subdirectory(crypto-vala) -add_subdirectory(plugins) - -# uninstall target -configure_file("${CMAKE_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) -add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/cmake_uninstall.cmake COMMENT "Uninstall the project...") |
