1
########### requirements ###############
3
cmake_minimum_required (VERSION 2.6)
4
find_package (PkgConfig)
5
include (CheckLibraryExists)
6
include (CheckIncludeFiles)
7
include (CheckFunctionExists)
8
include (CheckSymbolExists)
10
########### project ###############
12
project ("cairo-dock")
13
set (VERSION "2.2.0-0beta4")
15
add_definitions (-std=c99 -Wstrict-prototypes -Wextra -Wwrite-strings -Wuninitialized -Werror-implicit-function-declaration) #-Wunreachable-code -Wno-unused-parameter -Wall
16
if (NOT ${CMAKE_BUILD_TYPE})
19
add_definitions (-DGL_GLEXT_PROTOTYPES="1")
20
add_definitions (-DCAIRO_DOCK_DEFAULT_ICON_NAME="default-icon.svg")
21
add_definitions (-DCAIRO_DOCK_ICON="cairo-dock.svg")
22
add_definitions (-DCAIRO_DOCK_LOGO="cairo-dock-logo.png")
23
add_definitions (-DCAIRO_DOCK_DATA_DIR="cairo-dock")
24
add_custom_target (uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
26
############ sources tarball ############
28
set (CPACK_SOURCE_GENERATOR "TGZ")
29
set (CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}")
30
set (CPACK_SOURCE_IGNORE_FILES
31
"/build/;/.bzr/;bzrignore$;/config.h$;/scripts/;/doc/;/misc/;/en_GB.po$;~$;${CPACK_SOURCE_IGNORE_FILES}")
34
add_custom_target( dist
35
COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
36
add_custom_target(dist-bzr
37
COMMAND bzr export ${CMAKE_PROJECT_NAME}-${VERSION}.tar.gz
38
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
40
########### global variables ###############
43
message(FATAL_ERROR "Cairo-Dock requires an air-conditioned room. Please close Windows!")
46
set (PACKAGE ${CMAKE_PROJECT_NAME})
47
set (GETTEXT_PACKAGE ${PACKAGE})
48
set (prefix ${CMAKE_INSTALL_PREFIX})
49
set (exec_prefix ${prefix})
50
set (datadir ${prefix}/share)
51
set (pkgdatadir ${datadir}/cairo-dock)
52
set (mandir ${datadir}/man)
54
if( CMAKE_SIZEOF_VOID_P EQUAL 8 AND "${LIB_SUFFIX}" STREQUAL "" AND "${FORCE_NOT_LIB64}" STREQUAL "" )
55
set (libdir ${prefix}/lib64)
56
elseif( CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT "${FORCE_NOT_LIB64}" STREQUAL "" )
57
set (libdir ${prefix}/lib${LIB_SUFFIX})
59
set (libdir ${prefix}/lib${LIB_SUFFIX})
62
set (includedir ${prefix}/include)
63
set (bindir ${prefix}/bin)
65
########### dependencies ###############
67
pkg_check_modules ("PACKAGE" REQUIRED "gtk+-2.0" "gthread-2.0" "cairo" "librsvg-2.0" "dbus-1" "dbus-glib-1" "libxml-2.0" "gtkglext-1.0" "xrender" "libcurl")
69
pkg_check_modules ("XEXTEND" "xtst" "xcomposite" "xinerama")
72
set (xextend_required "xtst xcomposite xinerama") # pour le .pc
75
# We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
76
check_library_exists (crypt encrypt "" HAVE_LIBCRYPT)
78
set (LIBCRYPT_LIBS "-lcrypt")
81
check_include_files ("math.h" HAVE_MATH_H)
82
check_symbol_exists (LC_MESSAGES "locale.h" HAVE_LC_MESSAGES)
83
CHECK_LIBRARY_EXISTS (m sin "" HAVE_LIBM)
86
MESSAGE (STATUS "Cairo-Dock will be compiled with the following options :")
88
MESSAGE (STATUS " * Use X Extensions : yes")
90
MESSAGE (STATUS " * Use X Extensions : no")
93
MESSAGE (STATUS " * crypt passwords : yes")
95
MESSAGE (STATUS " * crypt passwords : no")
99
########### next steps ###############
101
add_subdirectory (src)
102
add_subdirectory (data)
103
add_subdirectory (po)
105
########### variables defined at compil time ###############
107
set (CAIRO_DOCK_SHARE_DATA_DIR ${pkgdatadir})
108
set (CAIRO_DOCK_SHARE_THEMES_DIR ${pkgdatadir}/themes)
109
set (CAIRO_DOCK_MODULES_DIR ${libdir}/cairo-dock)
110
set (CAIRO_DOCK_LOCALE_DIR ${datadir}/locale)
111
set (CAIRO_DOCK_THEMES_DIR "themes")
112
set (CAIRO_DOCK_GETTEXT_PACKAGE ${GETTEXT_PACKAGE})
114
set (GLDI_SHARE_DATA_DIR ${pkgdatadir})
116
########### file generation ###############
118
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake.in ${CMAKE_CURRENT_SOURCE_DIR}/src/config.h)
119
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/data/cairo-dock.conf.in ${CMAKE_CURRENT_BINARY_DIR}/data/cairo-dock.conf)
120
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/data/cairo-dock-simple.conf.in ${CMAKE_CURRENT_BINARY_DIR}/data/cairo-dock-simple.conf)
121
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/data/main-dock.conf.in ${CMAKE_CURRENT_BINARY_DIR}/data/main-dock.conf)
122
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/data/themes.conf.in ${CMAKE_CURRENT_BINARY_DIR}/data/themes.conf)
123
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/data/help.conf.in ${CMAKE_CURRENT_BINARY_DIR}/data/help.conf)
124
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cairo-dock.pc.in ${CMAKE_CURRENT_BINARY_DIR}/cairo-dock.pc)
125
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake IMMEDIATE @ONLY)
127
########### install files ###############
129
install (FILES cairo-dock-package-theme launch-cairo-dock-with-delay
130
DESTINATION ${bindir}
131
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
132
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/cairo-dock.pc DESTINATION ${libdir}/pkgconfig)
134
########### misc ###############
135
#set (CPACK_SOURCE_GENERATOR "TGZ")
136
#set (CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}")
137
#set (CPACK_SOURCE_IGNORE_FILES "/build/;/.bzr/;/.deps/;Makefile$;Makefile.in;.gmo$;/.libs/;.lo$;.la$;POTFILES;stamp-it;aclocal.m4;config.guess$;/config.h$;/config.h.in$;/config.log$;/config.status$;/config.sub$;/configure$;/depcomp$;/install-sh$;/libtool$;/ltmain.sh$;/missing$;/stamp-h1$;/compile;/CMakeFiles/;/_CPack_Packages/;/autom4te.cache/;/install_manifest.txt$;.tar.gz$;/CMakeCache.txt$;/cairo-dock$;/scripts/;/doc/;/data/themes.conf$;/data/cairo-dock.conf$;/data/main-dock.conf$;/data/cairo-dock-simple.conf$;/cairo-dock.pc$;.cmake$;~$;${CPACK_SOURCE_IGNORE_FILES}")
138
#include (CPack) # a inclure apres les set.
139
#add_custom_target( dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source) # pour pouvoir l'appeler avec "make dist"