use -Werror by default in debug mode builds
[supertux.git] / tools / miniswig / CMakeLists.txt
1 #
2 # SuperTux - miniswig build script
3 # Copyright (C) 2007 Timothy Goya <tuxdev103@gmail.com>
4 #
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
9
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 #
19
20 ## Project name to use as command prefix
21
22 PROJECT(MINISWIG)
23
24 ## add additional compiler switches
25
26 ADD_DEFINITIONS(-include ${CMAKE_BINARY_DIR}/config.h)
27 # the autogenerated bison/flex is not warning free usually
28 REMOVE_DEFINITIONS(-Wall -W)
29
30 ## Include paths to make generated files work
31
32 INCLUDE_DIRECTORIES (${MINISWIG_SOURCE_DIR})
33
34 ## build list of source files
35
36 FILE(GLOB MINISWIG_SOURCES RELATIVE ${MINISWIG_SOURCE_DIR} create_docu.cpp create_wrapper.cpp main.cpp tree.cpp xmlwriter.cpp)
37
38 ## Add target for bison parser generation
39
40 MARK_AS_ADVANCED(BISON_EXECUTABLE)
41 FIND_PROGRAM(BISON_EXECUTABLE bison)
42 IF (NOT BISON_EXECUTABLE)
43   MESSAGE(FATAL_ERROR "bison not found - aborting")
44 ENDIF (NOT BISON_EXECUTABLE)
45 ADD_CUSTOM_COMMAND(
46   OUTPUT ${MINISWIG_BINARY_DIR}/parser.cpp ${MINISWIG_BINARY_DIR}/parser.hpp
47   COMMAND ${BISON_EXECUTABLE}
48   ARGS -d -o ${MINISWIG_BINARY_DIR}/parser.cpp ${MINISWIG_SOURCE_DIR}/parser.yy
49   DEPENDS parser.yy
50 )
51
52 ## Add target for flex lexical analyzer generation
53
54 MARK_AS_ADVANCED(FLEX_EXECUTABLE)
55 FIND_PROGRAM(FLEX_EXECUTABLE flex)
56 IF (NOT FLEX_EXECUTABLE)
57   MESSAGE(FATAL_ERROR "flex not found - aborting")
58 ENDIF (NOT FLEX_EXECUTABLE)
59 ADD_CUSTOM_COMMAND(
60   OUTPUT ${MINISWIG_BINARY_DIR}/lexer.cpp
61   COMMAND ${FLEX_EXECUTABLE}
62   ARGS -o ${MINISWIG_BINARY_DIR}/lexer.cpp ${MINISWIG_SOURCE_DIR}/lexer.ll
63   DEPENDS lexer.ll ${MINISWIG_BINARY_DIR}/parser.hpp
64 )
65
66 ## Add target for miniswig binary
67
68 ADD_EXECUTABLE(miniswig ${MINISWIG_SOURCES} ${MINISWIG_BINARY_DIR}/parser.cpp ${MINISWIG_BINARY_DIR}/lexer.cpp)