claws-mail/CMakeLists.txt

102 lines
3.0 KiB
CMake

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)
target_compile_definitions(ClawsMail PRIVATE -DUSE_GPGME)
## 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})