Add a minimum CMake version tag. Also specify that this is a C project.
[inoclam.git] / src / CMakeLists.txt
blob9a5e97c21d083d08a9ab106d64ee6061372cbfb7
1 # inoclam - Inotify+ClamAV virus scanner
2 # Copyright (C) 2007, 2008 Vermont Department of Taxes
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License version 2 as
6 # published by the Free Software Foundation.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17 SET (libdirs /usr/lib /usr/pkg/lib /usr/local/lib /usr/lib64 /usr/local/lib64 /usr/lib32 /usr/local/lib32)
18 SET (bindirs /usr/bin /usr/pkg/bin /usr/local/bin)
19 SET (incdirs /usr/include /usr/local/include /usr/pkg/include /usr/include/jwsmtp-1.32 /usr/local/include/jwsmtp-1.32 /usr/pkg/include/jwsmtp-1.32)
21 #############################################
22 # libclamav checks
23 #############################################
25 FIND_LIBRARY(LIBCLAMAV clamav ${libdirs})
27 IF (LIBCLAMAV)
28   MESSAGE(STATUS "Found libclamav: ${LIBCLAMAV}")
29 ELSE (LIBCLAMAV)
30   MESSAGE (FATAL_ERROR "libclamav not found.")
31 ENDIF (LIBCLAMAV)
33 FIND_PATH(LIBCLAMAV_INCLUDE_DIR clamav.h ${incdirs})
35 IF (LIBCLAMAV_INCLUDE_DIR)
36   MESSAGE(STATUS "Found clamav.h in ${LIBCLAMAV_INCLUDE_DIR}")
37 ELSE (LIBCLAMAV_INCLUDE_DIR)
38   MESSAGE (FATAL_ERROR "clamav.h not found.")
39 ENDIF (LIBCLAMAV_INCLUDE_DIR)
41 #############################################
42 # libdaemon checks
43 #############################################
45 FIND_LIBRARY(LIBDAEMON daemon ${libdirs})
47 IF (LIBDAEMON)
48   MESSAGE(STATUS "Found libdaemon: ${LIBDAEMON}")
49 ELSE (LIBDAEMON)
50   MESSAGE (FATAL_ERROR "libdaemon not found.")
51 ENDIF (LIBDAEMON)
53 FIND_PATH(LIBDAEMON_INCLUDE_DIR libdaemon/daemon.h ${incdirs})
55 IF (LIBDAEMON_INCLUDE_DIR)
56   MESSAGE(STATUS "Found libdaemon/daemon.h in ${LIBDAEMON_INCLUDE_DIR}")
57 ELSE (LIBDAEMON_INCLUDE_DIR)
58   MESSAGE (FATAL_ERROR "libdaemon/daemon.h not found.")
59 ENDIF (LIBDAEMON_INCLUDE_DIR)
61 #############################################
62 # libinotifytools checks
63 #############################################
65 FIND_LIBRARY(LIBINOTIFYTOOLS inotifytools ${libdirs})
67 IF (LIBINOTIFYTOOLS)
68   MESSAGE(STATUS "Found libnotifytools: ${LIBINOTIFYTOOLS}")
69 ELSE (LIBINOTIFYTOOLS)
70   MESSAGE (FATAL_ERROR "libinotifytools not found.")
71 ENDIF (LIBINOTIFYTOOLS)
73 FIND_PATH(LIBINOTIFYTOOLS_INCLUDE_DIR inotifytools/inotify.h ${incdirs})
75 IF (LIBINOTIFYTOOLS_INCLUDE_DIR)
76   MESSAGE(STATUS "Found inotifytools/inotify.h in ${LIBINOTIFYTOOLS_INCLUDE_DIR}")
77 ELSE (LIBINOTIFYTOOLS_INCLUDE_DIR)
78   MESSAGE (FATAL_ERROR "inotifytools/inotify.h not found.")
79 ENDIF (LIBINOTIFYTOOLS_INCLUDE_DIR)
81 #############################################
82 # jwsmtp checks
83 #############################################
85 FIND_LIBRARY(JWSMTP jwsmtp ${libdirs})
87 IF (JWSMTP)
88   MESSAGE(STATUS "Found jwsmtp: ${JWSMTP}")
89 ELSE (JWSMTP)
90   MESSAGE (FATAL_ERROR "jwsmtp not found.")
91 ENDIF (JWSMTP)
93 FIND_PATH(JWSMTP_INCLUDE_DIR jwsmtp/jwsmtp.h ${incdirs})
95 IF (JWSMTP_INCLUDE_DIR)
96   MESSAGE(STATUS "Found jwsmtp/jwsmtp.h in ${JWSMTP_INCLUDE_DIR}")
97 ELSE (JWSMTP_INCLUDE_DIR)
98   MESSAGE (FATAL_ERROR "jwsmtp/jwsmtp.h not found.")
99 ENDIF (JWSMTP_INCLUDE_DIR)
101 #############################################
102 # inotify checks
103 #############################################
105 FIND_PATH(INOTIFY_INCLUDE_DIR sys/inotify.h ${incdirs})
107 IF (INOTIFY_INCLUDE_DIR)
108   MESSAGE(STATUS "Found sys/inotify.h in ${INOTIFY_INCLUDE_DIR}")
109 ELSE (INOTIFY_INCLUDE_DIR)
110   MESSAGE (FATAL_ERROR "sys/inotify.h not found.")
111 ENDIF (INOTIFY_INCLUDE_DIR)
113 #############################################
114 # libconfuse checks
115 #############################################
117 FIND_LIBRARY(LIBCONFUSE confuse ${libdirs})
119 IF (LIBCONFUSE)
120   MESSAGE(STATUS "Found libconfuse: ${LIBCONFUSE}")
121 ELSE (LIBCONFUSE)
122   MESSAGE (FATAL_ERROR "libconfuse not found.")
123 ENDIF (LIBCONFUSE)
125 FIND_PATH(LIBCONFUSE_INCLUDE_DIR confuse.h ${incdirs})
127 IF (LIBCONFUSE_INCLUDE_DIR)
128   MESSAGE(STATUS "Found confuse.h in ${LIBCONFUSE_INCLUDE_DIR}")
129 ELSE (LIBCONFUSE_INCLUDE_DIR)
130   MESSAGE (FATAL_ERROR "confuse.h not found.")
131 ENDIF (LIBCONFUSE_INCLUDE_DIR)
133 #############################################
134 # libpthread checks
135 #############################################
137 FIND_LIBRARY(LIBPTHREAD pthread ${libdirs})
139 IF (LIBPTHREAD)
140   MESSAGE(STATUS "Found libpthread: ${LIBPTHREAD}")
141 ELSE (LIBPTHREAD)
142   MESSAGE (FATAL_ERROR "libpthread not found.")
143 ENDIF (LIBPTHREAD)
145 FIND_PATH(LIBPTHREAD_INCLUDE_DIR pthread.h ${incdirs})
147 IF (LIBPTHREAD_INCLUDE_DIR)
148   MESSAGE(STATUS "Found pthread.h in ${LIBPTHREAD_INCLUDE_DIR}")
149 ELSE (LIBPTHREAD_INCLUDE_DIR)
150   MESSAGE (FATAL_ERROR "pthread.h not found.")
151 ENDIF (LIBPTHREAD_INCLUDE_DIR)
153 #############################################
154 # include dirs
155 #############################################
157 INCLUDE_DIRECTORIES(${incdirs} ${LIBCLAMAV_INCLUDE_DIR} ${LIBDAEMON_INCLUDE_DIR} ${LIBINOTIFYTOOLS_INCLUDE_DIR} ${INOTIFY_INCLUDE_DIR} ${JWSMTP_INCLUDE_DIR} ${LIBCONFUSE_INCLUDE_DIR} ${LIBPTHREAD_INCLUDE_DIR})
159 #############################################
160 # compile
161 #############################################
163 ADD_EXECUTABLE(inoclam config.cxx clam.cxx inoclam.cxx inotify.cxx monitor.cxx signal.cxx smtp.cxx)
165 #############################################
166 # link
167 #############################################
169 TARGET_LINK_LIBRARIES(inoclam ${LIBCLAMAV} ${LIBDAEMON} ${LIBINOTIFYTOOLS} ${JWSMTP} ${LIBCONFUSE} ${LIBPTHREAD})
171 #############################################
172 # install
173 #############################################
175 INSTALL(PROGRAMS inoclam DESTINATION sbin)