]> Dogcows Code - chaz/yoink/blob - src/Moof/yajl/src/CMakeLists.txt
added missing licenses
[chaz/yoink] / src / Moof / yajl / src / CMakeLists.txt
1 # Copyright 2007-2009, Lloyd Hilaiel.
2 #
3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are
5 # met:
6 #
7 # 1. Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer.
9 #
10 # 2. Redistributions in binary form must reproduce the above copyright
11 # notice, this list of conditions and the following disclaimer in
12 # the documentation and/or other materials provided with the
13 # distribution.
14 #
15 # 3. Neither the name of Lloyd Hilaiel nor the names of its
16 # contributors may be used to endorse or promote products derived
17 # from this software without specific prior written permission.
18 #
19 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 # DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
23 # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25 # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
27 # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
28 # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 # POSSIBILITY OF SUCH DAMAGE.
30
31 SET (SRCS yajl.c yajl_lex.c yajl_parser.c yajl_buf.c
32 yajl_encode.c yajl_gen.c yajl_alloc.c)
33 SET (HDRS yajl_parser.h yajl_lex.h yajl_buf.h yajl_encode.h yajl_alloc.h)
34 SET (PUB_HDRS api/yajl_parse.h api/yajl_gen.h api/yajl_common.h)
35
36 # useful when fixing lexer bugs.
37 #ADD_DEFINITIONS(-DYAJL_LEXER_DEBUG)
38
39 # set up some paths
40 SET (libDir ${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib)
41 SET (incDir ${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/include/yajl)
42
43 # set the output path for libraries
44 SET(LIBRARY_OUTPUT_PATH ${libDir})
45
46 ADD_LIBRARY(yajl_s STATIC ${SRCS} ${HDRS} ${PUB_HDRS})
47
48 ADD_LIBRARY(yajl SHARED ${SRCS} ${HDRS} ${PUB_HDRS})
49
50 #### setup shared library version number
51 SET_TARGET_PROPERTIES(yajl PROPERTIES
52 SOVERSION ${YAJL_MAJOR}
53 VERSION ${YAJL_MAJOR}.${YAJL_MINOR}.${YAJL_MICRO})
54
55 #### build up an sdk as a post build step
56
57 # create some directories
58 FILE(MAKE_DIRECTORY ${libDir})
59 FILE(MAKE_DIRECTORY ${incDir})
60
61 # copy public headers to output directory
62 FOREACH (header ${PUB_HDRS})
63 SET (header ${CMAKE_CURRENT_SOURCE_DIR}/${header})
64
65 EXEC_PROGRAM(${CMAKE_COMMAND} ARGS -E copy_if_different ${header} ${incDir})
66
67 ADD_CUSTOM_COMMAND(TARGET yajl_s POST_BUILD
68 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${header} ${incDir})
69 ENDFOREACH (header ${PUB_HDRS})
70
71 INCLUDE_DIRECTORIES(${incDir}/..)
72
73 IF(NOT WIN32)
74 INSTALL(TARGETS yajl LIBRARY DESTINATION lib)
75 INSTALL(TARGETS yajl_s ARCHIVE DESTINATION lib)
76 INSTALL(DIRECTORY api/ DESTINATION include/yajl
77 FILES_MATCHING PATTERN "*.h")
78 ENDIF()
This page took 0.03071 seconds and 4 git commands to generate.