2023-08-19 17:45:14 +02:00
|
|
|
cmake_minimum_required(VERSION 3.5)
|
|
|
|
|
|
|
|
project(ClawsMail LANGUAGES C)
|
|
|
|
|
|
|
|
## Dependencies ##
|
|
|
|
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
|
|
pkg_check_modules(GLib REQUIRED glib-2.0)
|
|
|
|
pkg_check_modules(GTK REQUIRED gtk+-3.0)
|
|
|
|
pkg_check_modules(GDK_PIXBUF REQUIRED gdk-pixbuf-2.0)
|
|
|
|
pkg_check_modules(libetpan REQUIRED libetpan)
|
|
|
|
pkg_check_modules(pgpme REQUIRED gpgme)
|
|
|
|
pkg_check_modules(gnutls REQUIRED gnutls)
|
|
|
|
|
|
|
|
## Source files ##
|
|
|
|
|
|
|
|
file(GLOB SOURCES
|
|
|
|
"config.h"
|
|
|
|
|
|
|
|
"src/*.h"
|
|
|
|
"src/*.c"
|
|
|
|
"src/common/*.h"
|
|
|
|
"src/common/*.c"
|
|
|
|
"src/etpan/*.h"
|
|
|
|
"src/etpan/*.c"
|
|
|
|
"src/gtk/*.h"
|
|
|
|
"src/gtk/*.c"
|
|
|
|
|
|
|
|
"src/plugins/pgpcore/*.h"
|
|
|
|
"src/plugins/pgpcore/*.c"
|
|
|
|
"src/plugins/pgpmime/*.h"
|
|
|
|
"src/plugins/pgpmime/*.c")
|
|
|
|
|
|
|
|
add_executable(ClawsMail)
|
|
|
|
target_sources(ClawsMail PRIVATE ${SOURCES})
|
|
|
|
target_include_directories(ClawsMail PRIVATE ${CMAKE_SOURCE_DIR})
|
|
|
|
target_include_directories(ClawsMail PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
|
|
|
target_include_directories(ClawsMail PRIVATE ${CMAKE_SOURCE_DIR}/src/common)
|
|
|
|
target_include_directories(ClawsMail PRIVATE ${CMAKE_SOURCE_DIR}/src/etpan)
|
|
|
|
target_include_directories(ClawsMail PRIVATE ${CMAKE_SOURCE_DIR}/src/gtk)
|
|
|
|
|
2023-08-20 18:39:32 +02:00
|
|
|
target_compile_definitions(ClawsMail PRIVATE -DUSE_GPGME)
|
|
|
|
|
2023-08-19 17:45:14 +02:00
|
|
|
|
|
|
|
## GLib 2.0 ##
|
|
|
|
|
|
|
|
target_link_libraries(ClawsMail PRIVATE ${GLib_LIBRARIES})
|
|
|
|
target_compile_definitions(ClawsMail PRIVATE ${GLib_CFLAGS_OTHER})
|
|
|
|
target_include_directories(ClawsMail PRIVATE ${GLib_INCLUDE_DIRS})
|
|
|
|
target_link_directories(ClawsMail PRIVATE ${GLib_LIBRARY_DIRS})
|
|
|
|
|
|
|
|
|
|
|
|
## GTK 3.0 ##
|
|
|
|
|
|
|
|
target_link_libraries(ClawsMail PRIVATE ${GTK_LIBRARIES})
|
|
|
|
|
|
|
|
# Add other flags to the compiler
|
|
|
|
target_compile_definitions(ClawsMail PRIVATE ${GTK_CFLAGS_OTHER})
|
|
|
|
|
|
|
|
|
|
|
|
# Setup CMake to use GTK+, tell the compiler where to look for headers
|
|
|
|
# and to the linker where to look for libraries
|
|
|
|
target_include_directories(ClawsMail PRIVATE ${GTK_INCLUDE_DIRS})
|
|
|
|
target_link_directories(ClawsMail PRIVATE ${GTK_LIBRARY_DIRS})
|
|
|
|
|
|
|
|
|
|
|
|
## GdkPixbuf 2.0 ##
|
|
|
|
|
|
|
|
target_link_libraries(ClawsMail PRIVATE ${GdkPixbuf_LIBRARIES})
|
|
|
|
target_compile_definitions(ClawsMail PRIVATE ${GdkPixbuf_CFLAGS_OTHER})
|
|
|
|
target_include_directories(ClawsMail PRIVATE ${GdkPixbuf_INCLUDE_DIRS})
|
|
|
|
target_link_directories(ClawsMail PRIVATE ${GdkPixbuf_LIBRARY_DIRS})
|
|
|
|
|
|
|
|
|
|
|
|
## libetpan ##
|
|
|
|
|
|
|
|
target_link_libraries(ClawsMail PRIVATE ${libetpan_LIBRARIES})
|
|
|
|
target_compile_definitions(ClawsMail PRIVATE ${libetpan_CFLAGS_OTHER})
|
|
|
|
target_include_directories(ClawsMail PRIVATE ${libetpan_INCLUDE_DIRS})
|
|
|
|
target_link_directories(ClawsMail PRIVATE ${libetpan_LIBRARY_DIRS})
|
|
|
|
|
|
|
|
|
|
|
|
## GPGME ##
|
|
|
|
|
|
|
|
target_link_libraries(ClawsMail PRIVATE ${gpgme_LIBRARIES})
|
|
|
|
target_compile_definitions(ClawsMail PRIVATE ${gpgme_CFLAGS_OTHER})
|
|
|
|
target_include_directories(ClawsMail PRIVATE ${gpgme_INCLUDE_DIRS})
|
|
|
|
target_link_directories(ClawsMail PRIVATE ${gpgme_LIBRARY_DIRS})
|
|
|
|
|
|
|
|
|
|
|
|
## GnuTLS ##
|
|
|
|
|
|
|
|
target_link_libraries(ClawsMail PRIVATE ${gnutls_LIBRARIES})
|
|
|
|
target_compile_definitions(ClawsMail PRIVATE ${gnutls_CFLAGS_OTHER})
|
|
|
|
target_include_directories(ClawsMail PRIVATE ${gnutls_INCLUDE_DIRS})
|
|
|
|
target_link_directories(ClawsMail PRIVATE ${gnutls_LIBRARY_DIRS})
|
|
|
|
|
|
|
|
## Installation ##
|
|
|
|
|
|
|
|
install(TARGETS ClawsMail
|
|
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|