source: trunk/CMakeLists.txt @ 14513

Last change on this file since 14513 was 14513, checked in by mikedld, 6 years ago

Define WIN32_LEAN_AND_MEAN and NOMINMAX for our own code only

File size: 15.8 KB
Line 
1cmake_minimum_required(VERSION 2.8.5 FATAL_ERROR)
2project(transmission)
3
4list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
5
6include(CheckIncludeFile)
7include(CheckIncludeFiles)
8include(CheckFunctionExists)
9include(CheckLibraryExists)
10include(ExternalProject)
11include(GNUInstallDirs)
12include(TrMacros)
13
14        option(ENABLE_DAEMON        "Build daemon" ON)
15tr_auto_option(ENABLE_GTK           "Build GTK+ client" AUTO)
16tr_auto_option(ENABLE_QT            "Build Qt client" AUTO)
17        option(ENABLE_UTILS         "Build utils (create, edit, show)" ON)
18        option(ENABLE_CLI           "Build command-line client" OFF)
19        option(ENABLE_TESTS         "Build unit tests" ON)
20        option(ENABLE_LIGHTWEIGHT   "Optimize libtransmission for low-resource systems: smaller cache size, prefer unencrypted peer connections, etc." OFF)
21        option(ENABLE_UTP           "Build µTP support" ON)
22        option(ENABLE_NLS           "Enable native language support" ON)
23        option(INSTALL_DOC          "Build/install documentation" ON)
24        option(INSTALL_LIB          "Install the library" OFF)
25        option(USE_QT5              "Use Qt 5 (instead of default Qt 4)" OFF)
26tr_auto_option(USE_SYSTEM_EVENT2    "Use system event2 library" AUTO)
27tr_auto_option(USE_SYSTEM_DHT       "Use system dht library" AUTO)
28tr_auto_option(USE_SYSTEM_MINIUPNPC "Use system miniupnpc library" AUTO)
29tr_auto_option(USE_SYSTEM_NATPMP    "Use system natpmp library" AUTO)
30tr_auto_option(USE_SYSTEM_UTP       "Use system utp library" AUTO)
31tr_auto_option(USE_SYSTEM_B64       "Use system b64 library" AUTO)
32tr_list_option(WITH_CRYPTO          "Use specified crypto library" AUTO openssl cyassl polarssl)
33tr_auto_option(WITH_INOTIFY         "Enable inotify support (on systems that support it)" AUTO)
34tr_auto_option(WITH_KQUEUE          "Enable kqueue support (on systems that support it)" AUTO)
35tr_auto_option(WITH_SYSTEMD         "Add support for systemd startup notification (on systems that support it)" AUTO)
36
37set(TR_NAME ${PROJECT_NAME})
38
39# convention: -TR MAJOR MINOR MAINT STATUS - (each a single char)
40# STATUS: "X" for prerelease beta builds,
41#         "Z" for unsupported trunk builds,
42#         "0" for stable, supported releases
43# these should be the only two lines you need to change
44set(TR_USER_AGENT_PREFIX "2.84+")
45set(TR_PEER_ID_PREFIX "-TR284Z-")
46
47string(REGEX MATCH "^([0-9]+)\\.([0-9]+).*" TR_VERSION "${TR_USER_AGENT_PREFIX}")
48set(TR_VERSION_MAJOR "${CMAKE_MATCH_1}")
49set(TR_VERSION_MINOR "${CMAKE_MATCH_2}")
50
51if(TR_PEER_ID_PREFIX MATCHES "X-$")
52    set(TR_BETA_RELEASE 1)
53elseif(TR_PEER_ID_PREFIX MATCHES "Z-$")
54    set(TR_NIGHTLY_RELEASE 1)
55else()
56    set(TR_STABLE_RELEASE 1)
57endif()
58
59if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/.svn)
60    find_package(Subversion)
61    if(Subversion_FOUND)
62        Subversion_WC_INFO(${CMAKE_SOURCE_DIR} TR_SVN)
63        set(TR_SCM_REVISION "${TR_SVN_WC_REVISION}")
64    endif()
65
66    if("${TR_SCM_REVISION}" STREQUAL "")
67        file(GLOB_RECURSE TR_ALL_SOURCES RELATIVE ${CMAKE_SOURCE_DIR} *.cc *.[chm] *.po)
68        set(TR_SCM_REVISION 0)
69        foreach(F ${TR_ALL_SOURCES})
70            file(STRINGS ${F} F_ID REGEX "\\$Id:")
71            if(F_ID MATCHES "\\$Id: [^ ]+ ([0-9]+) " AND CMAKE_MATCH_1 GREATER TR_SCM_REVISION)
72                set(TR_SCM_REVISION ${CMAKE_MATCH_1})
73            endif()
74        endforeach()
75    endif()
76elseif(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/.git)
77    find_package(Git)
78    if(GIT_FOUND)
79        execute_process(
80            COMMAND
81                ${GIT_EXECUTABLE} rev-list --max-count=1 --abbrev-commit HEAD
82            WORKING_DIRECTORY
83                ${CMAKE_SOURCE_DIR}
84            OUTPUT_VARIABLE
85                TR_SCM_REVISION
86            OUTPUT_STRIP_TRAILING_WHITESPACE
87        )
88    endif()
89endif()
90
91if("${TR_SCM_REVISION}" STREQUAL "")
92    set(TR_SCM_REVISION 0)
93endif()
94
95set_property(GLOBAL PROPERTY USE_FOLDERS ON)
96
97set(CURL_MINIMUM            7.15.4)
98set(EVENT2_MINIMUM          2.0.10)
99set(OPENSSL_MINIMUM         0.9.4)
100set(CYASSL_MINIMUM          3.0)
101set(POLARSSL_MINIMUM        1.2)
102set(ZLIB_MINIMUM            1.2.3)
103set(GTK_MINIMUM             3.4.0)
104set(GLIB_MINIMUM            2.32.0)
105set(GIO_MINIMUM             2.26.0)
106set(LIBAPPINDICATOR_MINIMUM 0.4.90)
107
108tr_github_upstream(EVENT2    libevent/libevent  c51b159cff 7be95856a39714dfd2218cb56415c990)
109tr_github_upstream(NATPMP    miniupnp/libnatpmp 31ebda6226 7e8deb00a98220622a6f2aeb98b8921b)
110tr_github_upstream(MINIUPNPC miniupnp/miniupnp  5de2bcb561 bdc5b64b9b8401d3524c50b9ec8173c1)
111tr_github_upstream(DHT       jech/dht           bf62643a95 0a2a2abe447d8a73f0084c1bc837e566)
112tr_github_upstream(UTP       bittorrent/libutp  7c4f19abdf 8b92aa05abec5f6675cdde6477cd6f51)
113tr_github_upstream(B64       mikedld/libb64     c1e3323498 10128cb30ad768d2c4caf627e0f69db3)
114
115if(WIN32)
116    foreach(L C CXX)
117        # Target version (Vista and up)
118        set(CMAKE_${L}_FLAGS "${CMAKE_${L}_FLAGS} -DWINVER=0x0600 -D_WIN32_WINNT=0x0600")
119        # Use Unicode API (although we always use W or A names explicitly)
120        set(CMAKE_${L}_FLAGS "${CMAKE_${L}_FLAGS} -DUNICODE -D_UNICODE")
121        # Ignore various deprecation and security warnings (at least for now)
122        set(CMAKE_${L}_FLAGS "${CMAKE_${L}_FLAGS} -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS")
123        # Increase maximum FD_SET size
124        set(CMAKE_${L}_FLAGS "${CMAKE_${L}_FLAGS} -DFD_SETSIZE=1024")
125        if(MSVC)
126            # Reduce noise (at least for now)
127            set(CMAKE_${L}_FLAGS "${CMAKE_${L}_FLAGS} /wd4244 /wd4267")
128        endif()
129    endforeach()
130endif()
131
132find_package(Threads)
133find_package(PkgConfig QUIET)
134
135find_package(CURL ${CURL_MINIMUM} REQUIRED)
136
137if(UNIX)
138    find_package(ICONV REQUIRED)
139endif()
140
141if(WITH_CRYPTO STREQUAL "AUTO" OR WITH_CRYPTO STREQUAL "openssl")
142    tr_get_required_flag(WITH_CRYPTO OPENSSL_IS_REQUIRED)
143    find_package(OpenSSL ${OPENSSL_MINIMUM} ${OPENSSL_IS_REQUIRED})
144    tr_fixup_list_option(WITH_CRYPTO "openssl" OPENSSL_FOUND "AUTO" OPENSSL_IS_REQUIRED)
145    if(WITH_CRYPTO STREQUAL "openssl")
146        set(CRYPTO_PKG "openssl")
147        set(CRYPTO_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR})
148        set(CRYPTO_LIBRARIES ${OPENSSL_LIBRARIES})
149    endif()
150endif()
151if(WITH_CRYPTO STREQUAL "AUTO" OR WITH_CRYPTO STREQUAL "cyassl")
152    tr_get_required_flag(WITH_CRYPTO CYASSL_IS_REQUIRED)
153    find_package(CyaSSL ${CYASSL_MINIMUM} ${CYASSL_IS_REQUIRED})
154    tr_fixup_list_option(WITH_CRYPTO "cyassl" CYASSL_FOUND "AUTO" CYASSL_IS_REQUIRED)
155    if(WITH_CRYPTO STREQUAL "cyassl")
156        set(CRYPTO_PKG "cyassl")
157        set(CRYPTO_INCLUDE_DIRS ${CYASSL_INCLUDE_DIRS})
158        set(CRYPTO_LIBRARIES ${CYASSL_LIBRARIES})
159    endif()
160endif()
161if(WITH_CRYPTO STREQUAL "AUTO" OR WITH_CRYPTO STREQUAL "polarssl")
162    tr_get_required_flag(WITH_CRYPTO POLARSSL_IS_REQUIRED)
163    find_package(PolarSSL ${POLARSSL_MINIMUM} ${POLARSSL_IS_REQUIRED})
164    tr_fixup_list_option(WITH_CRYPTO "polarssl" POLARSSL_FOUND "AUTO" POLARSSL_IS_REQUIRED)
165    if(WITH_CRYPTO STREQUAL "polarssl")
166        set(CRYPTO_PKG "polarssl")
167        set(CRYPTO_INCLUDE_DIRS ${POLARSSL_INCLUDE_DIRS})
168        set(CRYPTO_LIBRARIES ${POLARSSL_LIBRARIES})
169    endif()
170endif()
171# We should have found the library by now
172if(CRYPTO_PKG STREQUAL "")
173    if(WITH_CRYPTO STREQUAL "AUTO")
174        message(FATAL_ERROR "Unable to find any supported crypto library.")
175    else()
176        message(FATAL_ERROR "Requested crypto library '${WITH_CRYPTO}' is not supported.")
177    endif()
178endif()
179
180if(ENABLE_GTK)
181    tr_get_required_flag(ENABLE_GTK GTK_IS_REQUIRED)
182
183    pkg_check_modules(GTK ${GTK_IS_REQUIRED}
184        gtk+-3.0>=${GTK_MINIMUM}
185        glib-2.0>=${GLIB_MINIMUM}
186        gio-2.0>=${GIO_MINIMUM}
187        gmodule-2.0>=${GLIB_MINIMUM}
188        gthread-2.0>=${GLIB_MINIMUM})
189
190    tr_fixup_auto_option(ENABLE_GTK GTK_FOUND GTK_IS_REQUIRED)
191
192    set(WITH_LIBAPPINDICATOR OFF)
193    if(ENABLE_GTK)
194        pkg_check_modules(LIBAPPINDICATOR appindicator3-0.1>=${LIBAPPINDICATOR_MINIMUM})
195        if(LIBAPPINDICATOR_FOUND)
196            set(WITH_LIBAPPINDICATOR ON)
197        endif()
198    endif()
199endif()
200
201if(ENABLE_QT)
202    tr_get_required_flag(ENABLE_QT QT_IS_REQUIRED)
203
204    if(POLICY CMP0020)
205        cmake_policy(SET CMP0020 NEW)
206    endif()
207
208    if(USE_QT5)
209        set(TR_QT5_MODULES Core Gui Widgets Network DBus LinguistTools)
210        set(QT_FOUND ON)
211        foreach(M ${TR_QT5_MODULES})
212            find_package(Qt5${M} ${QT_IS_REQUIRED})
213            if(NOT Qt5${M}_FOUND)
214                set(QT_FOUND OFF)
215                break()
216            endif()
217        endforeach()
218    else()
219        find_package(Qt4 4.6.2 ${QT_IS_REQUIRED} COMPONENTS QtCore QtGui QtNetwork QtDBus)
220    endif()
221
222    tr_fixup_auto_option(ENABLE_QT QT_FOUND QT_IS_REQUIRED)
223endif()
224
225find_package(ZLIB ${ZLIB_MINIMUM})
226if(ZLIB_FOUND)
227    add_definitions(-DHAVE_ZLIB)
228endif()
229
230set(THIRD_PARTY_DIR ${CMAKE_SOURCE_DIR}/third-party)
231
232if(WIN32)
233    tr_add_external_auto_library(EVENT2 event
234        PATCH_COMMAND "${CMAKE_COMMAND}" -E copy "${THIRD_PARTY_DIR}/event2.cmake" "<SOURCE_DIR>/CMakeLists.txt")
235else()
236    tr_add_external_auto_library(EVENT2 event
237        BUILD_IN_SOURCE 1
238        CONFIGURE_COMMAND "<SOURCE_DIR>/autogen.sh"
239                  COMMAND "<SOURCE_DIR>/configure" "--prefix=<INSTALL_DIR>" "--disable-shared")
240endif()
241
242tr_add_external_auto_library(NATPMP natpmp
243    PATCH_COMMAND "${CMAKE_COMMAND}" -E copy "${THIRD_PARTY_DIR}/natpmp.cmake" "<SOURCE_DIR>/CMakeLists.txt")
244if(NOT USE_SYSTEM_NATPMP)
245    set(NATPMP_DEFINITIONS -DNATPMP_STATICLIB)
246endif()
247
248tr_add_external_auto_library(MINIUPNPC miniupnpc
249    PATCH_COMMAND "${CMAKE_COMMAND}" -E remove_directory "<SOURCE_DIR>/minissdpd"
250          COMMAND "${CMAKE_COMMAND}" -E remove_directory "<SOURCE_DIR>/miniupnpc-async"
251          COMMAND "${CMAKE_COMMAND}" -E remove_directory "<SOURCE_DIR>/miniupnpc-libevent"
252          COMMAND "${CMAKE_COMMAND}" -E remove_directory "<SOURCE_DIR>/miniupnpd"
253          COMMAND "${CMAKE_COMMAND}" -E remove "<SOURCE_DIR>/README"
254          COMMAND "${CMAKE_COMMAND}" -E copy_directory "<SOURCE_DIR>/miniupnpc" "<SOURCE_DIR>"
255          COMMAND "${CMAKE_COMMAND}" -E remove_directory "<SOURCE_DIR>/miniupnpc"
256    CMAKE_ARGS
257        -DUPNPC_BUILD_STATIC=ON
258        -DUPNPC_BUILD_SHARED=OFF
259        -DUPNPC_BUILD_TESTS=OFF)
260set(MINIUPNPC_DEFINITIONS -DSYSTEM_MINIUPNP)
261if(NOT USE_SYSTEM_MINIUPNPC)
262    list(APPEND MINIUPNPC_DEFINITIONS -DMINIUPNP_STATICLIB)
263    set(MINIUPNPC_VERSION 1.9)
264    set(MINIUPNPC_API_VERSION 12)
265endif()
266
267tr_add_external_auto_library(DHT dht
268    PATCH_COMMAND "${CMAKE_COMMAND}" -E copy "${THIRD_PARTY_DIR}/dht.cmake" "<SOURCE_DIR>/CMakeLists.txt")
269
270if(ENABLE_UTP)
271    tr_add_external_auto_library(UTP utp
272        PATCH_COMMAND "${CMAKE_COMMAND}" -E copy "${THIRD_PARTY_DIR}/utp.cmake" "<SOURCE_DIR>/CMakeLists.txt"
273              COMMAND "${CMAKE_COMMAND}" -E copy "${THIRD_PARTY_DIR}/utp_config.h" "<SOURCE_DIR>/utp_config.h"
274              COMMAND "${CMAKE_COMMAND}" -E chdir "<SOURCE_DIR>" patch -p1 --binary -i "${THIRD_PARTY_DIR}/utp-01-ticket-5002.patch")
275endif()
276
277tr_add_external_auto_library(B64 b64
278    PATCH_COMMAND "${CMAKE_COMMAND}" -E copy "${THIRD_PARTY_DIR}/b64.cmake" "<SOURCE_DIR>/CMakeLists.txt"
279          COMMAND "${CMAKE_COMMAND}" -E chdir "<SOURCE_DIR>" patch -p1 -i "${THIRD_PARTY_DIR}/b64-01-newline.patch"
280          COMMAND "${CMAKE_COMMAND}" -E chdir "<SOURCE_DIR>" patch -p1 -i "${THIRD_PARTY_DIR}/b64-02-unsigned-char.patch")
281
282if(WITH_INOTIFY)
283    tr_get_required_flag(WITH_INOTIFY INOTIFY_IS_REQUIRED)
284
285    set(INOTIFY_FOUND OFF)
286    check_include_file(sys/inotify.h HAVE_SYS_INOTIFY_H)
287    check_function_exists(inotify_init HAVE_INOTIFY_INIT)
288    if(HAVE_SYS_INOTIFY_H AND HAVE_INOTIFY_INIT)
289        set(INOTIFY_FOUND ON)
290    endif()
291
292    tr_fixup_auto_option(WITH_INOTIFY INOTIFY_FOUND INOTIFY_IS_REQUIRED)
293endif()
294
295if(WITH_KQUEUE)
296    tr_get_required_flag(WITH_KQUEUE KQUEUE_IS_REQUIRED)
297
298    set(KQUEUE_FOUND OFF)
299    check_include_files("sys/types.h;sys/event.h" HAVE_SYS_EVENT_H)
300    check_function_exists(kqueue HAVE_KQUEUE)
301    if(HAVE_SYS_EVENT_H AND HAVE_KQUEUE)
302        set(KQUEUE_FOUND ON)
303    endif()
304
305    tr_fixup_auto_option(WITH_KQUEUE KQUEUE_FOUND KQUEUE_IS_REQUIRED)
306endif()
307
308if(WITH_SYSTEMD)
309    tr_get_required_flag(WITH_SYSTEMD SYSTEMD_IS_REQUIRED)
310
311    pkg_check_modules(SYSTEMD_DAEMON ${SYSTEMD_IS_REQUIRED} libsystemd-daemon)
312
313    tr_fixup_auto_option(WITH_SYSTEMD SYSTEMD_DAEMON_FOUND SYSTEMD_IS_REQUIRED)
314endif()
315
316include_directories(${CMAKE_BINARY_DIR})
317
318if(WIN32)
319    foreach(L C CXX)
320        # Filter out needless definitions
321        set(CMAKE_${L}_FLAGS "${CMAKE_${L}_FLAGS} -DWIN32_LEAN_AND_MEAN -DNOMINMAX")
322    endforeach()
323endif()
324
325if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
326    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
327    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
328
329    set(NEEDED_COMPILER_FLAGS
330        -Wall
331        -W
332        -Wcast-align
333        -Wfloat-equal
334        -Wformat-security
335        -Wmissing-format-attribute
336        -Wpointer-arith
337        -Wredundant-decls
338        -Wundef
339        -Wunused-parameter
340        -Wwrite-strings)
341
342    if(NOT CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_VERSION VERSION_GREATER "3.3")
343        list(APPEND NEEDED_COMPILER_FLAGS
344            -Wextra
345            -Winit-self)
346    endif()
347
348    set(NEEDED_C_COMPILER_FLAGS
349        ${NEEDED_COMPILER_FLAGS}
350        -Winline
351        -Wmissing-declarations
352        -Wnested-externs
353        -Wstrict-prototypes)
354    string(REPLACE ";" " " NEEDED_C_COMPILER_FLAGS_STRING "${NEEDED_C_COMPILER_FLAGS}")
355    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NEEDED_C_COMPILER_FLAGS_STRING}")
356
357    set(NEEDED_CXX_COMPILER_FLAGS
358        ${NEEDED_COMPILER_FLAGS})
359    string(REPLACE ";" " " NEEDED_CXX_COMPILER_FLAGS_STRING "${NEEDED_CXX_COMPILER_FLAGS}")
360    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${NEEDED_CXX_COMPILER_FLAGS_STRING}")
361endif()
362
363include(LargeFileSupport)
364
365set(NEEDED_HEADERS
366    stdbool.h
367    sys/statvfs.h
368    xfs/xfs.h)
369
370if(ENABLE_NLS)
371    list(APPEND NEEDED_HEADERS libintl.h)
372endif()
373
374foreach(H ${NEEDED_HEADERS})
375    tr_make_id("${H}" H_ID)
376    check_include_file(${H} HAVE_${H_ID})
377    if(HAVE_${H_ID})
378        add_definitions(-DHAVE_${H_ID})
379    endif()
380endforeach()
381
382set(NEEDED_FUNCTIONS
383    canonicalize_file_name
384    daemon
385    fallocate64
386    getmntent
387    getpagesize
388    htonll
389    iconv_open
390    localtime_r
391    memmem
392    mkdtemp
393    ntohll
394    posix_fadvise
395    posix_fallocate
396    posix_memalign
397    pread
398    pwrite
399    statvfs
400    strlcpy
401    strsep
402    syslog
403    valloc)
404
405foreach(F ${NEEDED_FUNCTIONS})
406    tr_make_id("${F}" F_ID)
407    check_function_exists(${F} HAVE_${F_ID})
408    if(HAVE_${F_ID})
409        add_definitions(-DHAVE_${F_ID})
410    endif()
411endforeach()
412
413# if(MINGW)
414#     check_function_exists(__mingw_printf HAVE_MINGW_PRINTF)
415#     if(HAVE_MINGW_PRINTF)
416#         add_definitions(-D__USE_MINGW_ANSI_STDIO=1 -D__STDC_FORMAT_MACROS=1)
417#     endif()
418# endif()
419
420if(ENABLE_NLS)
421    check_library_exists(intl libintl_gettext "" HAVE_LIBINTL)
422    if(HAVE_LIBINTL)
423        set(LIBINTL_LIBRARY intl)
424    endif()
425endif()
426
427check_library_exists(m sqrt "" HAVE_LIBM)
428if(HAVE_LIBM)
429    set(LIBM_LIBRARY m)
430endif()
431
432if(ENABLE_TESTS)
433    enable_testing()
434    include(CTest)
435endif()
436
437add_subdirectory(libtransmission)
438
439foreach(P daemon cli utils gtk qt)
440    string(TOUPPER "${P}" P_ID)
441    if(ENABLE_${P_ID})
442        add_subdirectory(${P})
443    endif()
444endforeach()
445
446if(ENABLE_DAEMON OR ENABLE_GTK OR ENABLE_QT)
447    install(DIRECTORY web DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${TR_NAME}
448        PATTERN *.am EXCLUDE
449        PATTERN *.scss EXCLUDE)
450endif()
451
452if(ENABLE_GTK AND ENABLE_NLS)
453    find_package(Gettext REQUIRED)
454    add_subdirectory(po)
455endif()
456
457if(INSTALL_DOC)
458    install(FILES AUTHORS COPYING NEWS README extras/rpc-spec.txt extras/send-email-when-torrent-done.sh DESTINATION ${CMAKE_INSTALL_DOCDIR})
459endif()
460
461set(CPACK_SOURCE_GENERATOR TBZ2)
462set(CPACK_SOURCE_PACKAGE_FILE_NAME "${TR_NAME}-${TR_USER_AGENT_PREFIX}")
463set(CPACK_SOURCE_IGNORE_FILES
464    \\\\.svn
465)
466
467include(CPack)
Note: See TracBrowser for help on using the repository browser.