fix overwrite symbols - not sure why it was enabled?
[roojspacker] / CMakeLists.txt
1 project("roojspacker" C)
2
3 cmake_minimum_required(VERSION 3.2)
4
5
6 set(PROJECT_WEB "https://www.roojs.com/")
7 # Where to report bugs; usually either an e-mail address or an issue
8 # tracker URL.
9 set(PROJECT_BUGS "https://www.roojs.com/mtrack/")
10 # Gettext package name
11 #set(GETTEXT_PACKAGE ${PROJECT_NAME})
12
13 # Library version
14 #
15 # This should be incremented with every release.  See semver.org.
16 set (ROOJSPACKER_VERSION_MAJOR    1)
17 set (ROOJSPACKER_VERSION_MINOR    2)
18 set (ROOJSPACKER_VERSION_REVISION 0)
19
20 # API version.
21 #
22 # This will go in the pkg-config and shared library names.  Should
23 # only be changed if the API breaks backwards compatibility.
24 set (ROOJSPACKER_VERSION_API      "1.2")
25 set (ROOJSPACKER_SOVERSION_CURRENT  ${ROOJSPACKER_VERSION_MAJOR})
26 set (ROOJSPACKER_SOVERSION_REVISION ${ROOJSPACKER_VERSION_MINOR})
27 set (ROOJSPACKER_SOVERSION_AGE      ${ROOJSPACKER_VERSION_REVISION})
28
29
30
31 list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
32
33  
34 find_package(GLib "2.38" REQUIRED) 
35 find_package(Vala "0.36.0" REQUIRED)
36
37    
38
39 find_package(PkgConfig)
40 pkg_check_modules(GOBJECT REQUIRED gobject-2.0)
41 pkg_check_modules(GIO REQUIRED gio-2.0)
42 pkg_check_modules(GEE REQUIRED gee-0.8)
43 pkg_check_modules(GTHREAD REQUIRED gthread-2.0)
44 # this was optional??
45 pkg_check_modules(JSON REQUIRED json-glib-1.0)
46
47
48 set(ROOJSPACKER_VALA_PACKAGES
49     glib-2.0  
50     gobject-2.0  
51     gee-0.8 
52     posix 
53     gio-2.0
54     json-glib-1.0
55 )
56
57  
58
59 set(CFLAGS
60         ${GOBJECT_CFLAGS} ${GOBJECT_CFLAGS_OTHER}
61         ${GIO_CFLAGS} ${GIO_CFLAGS_OTHER}
62         ${GTHREAD_CFLAGS} ${GTHREAD_CFLAGS_OTHER}
63         ${GEE_CFLAGS} ${GEE_CFLAGS_OTHER}
64         ${JSON_CFLAGS} ${JSON_CFLAGS_OTHER}
65 )
66 add_definitions(${CFLAGS})
67
68
69
70 if(CMAKE_BUILD_TYPE STREQUAL "")
71   set(CMAKE_BUILD_TYPE "Debug")
72 endif(CMAKE_BUILD_TYPE STREQUAL "")
73
74 list(APPEND VALA_COMPILER_FLAGS
75         "--target-glib=2.38"
76         "-g"
77         "--thread"
78         "--vapidir=${CMAKE_SOURCE_DIR}/vapi"
79 )
80 list(APPEND VALA_COMPILER_FLAGs_DEBUG "--debug")
81 #        "-X -shared"
82 #"-X -lm"
83
84
85
86 include(AddCompilerFlags)
87
88 global_add_compiler_flags(-Wno-incompatible-pointer-types)
89
90
91 set(LIBS
92         ${GOBJECT_LIBRARIES}
93         ${GIO_LIBRARIES}
94         ${GEE_LIBRARIES}
95         ${GTHREAD_LIBRARIES}
96         ${JSON_LIBRARIES}
97 )
98 link_libraries(${LIBS})
99
100
101 set(LIB_PATHS
102         ${GOBJECT_LIBRARY_DIRS}
103         ${GIO_LIBRARY_DIRS}
104         ${GEE_LIBRARY_DIRS}
105         ${GTHREAD_LIBRARY_DIRS}
106         ${JSON_LIBRARY_DIRS}
107 )
108 link_directories(${LIB_PATHS})
109
110 set (LIBRARY_PATH "src")
111 set(ROOJSPACKER_LIBRARY_NAME ${PROJECT_NAME}-${ROOJSPACKER_VERSION_API})
112 set(ROOJSPACKER_PKG_NAME ${PROJECT_NAME}-${ROOJSPACKER_VERSION_API})
113
114 # Name of the GObject Introspection repository for the library.
115 set(ROOJSPACKER_GIR_NAME "MyProject-${ROOJSPACKER_VERSION_API}")
116
117 set (LIBRARY_PATH "roojspacker")
118   
119 add_subdirectory(roojspacker)
120 add_subdirectory(bin)