CMakeLists.txt
[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 (MY_PROJECT_VERSION_MAJOR    1)
17 set (MY_PROJECT_VERSION_MINOR    2)
18 set (MY_PROJECT_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 (MY_PROJECT_VERSION_API      "1.2")
25 set (MY_PROJECT_SOVERSION_CURRENT  ${MY_PROJECT_VERSION_MAJOR})
26 set (MY_PROJECT_SOVERSION_REVISION ${MY_PROJECT_VERSION_MINOR})
27 set (MY_PROJECT_SOVERSION_AGE      ${MY_PROJECT_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(CFLAGS
49         ${GOBJECT_CFLAGS} ${GOBJECT_CFLAGS_OTHER}
50         ${GIO_CFLAGS} ${GIO_CFLAGS_OTHER}
51         ${GTHREAD_CFLAGS} ${GTHREAD_CFLAGS_OTHER}
52         ${GEE_CFLAGS} ${GEE_CFLAGS_OTHER}
53         ${JSON_CFLAGS} ${JSON_CFLAGS_OTHER}
54 )
55 add_definitions(${CFLAGS})
56
57
58
59 if(CMAKE_BUILD_TYPE STREQUAL "")
60   set(CMAKE_BUILD_TYPE "Debug")
61 endif(CMAKE_BUILD_TYPE STREQUAL "")
62
63 list(APPEND VALA_COMPILER_FLAGS
64         "--target-glib=2.38"
65         "-g"
66         "-X -shared"
67         "-X -lm"
68         "--thread"
69         "--vapidir=${CMAKE_SOURCE_DIR}/vapi"
70 )
71 list(APPEND VALA_COMPILER_FLAGs_DEBUG "--debug")
72
73
74
75 include(AddCompilerFlags)
76
77 global_add_compiler_flags(-Wno-incompatible-pointer-types)
78
79
80 set(LIBS
81         ${GOBJECT_LIBRARIES}
82         ${GIO_LIBRARIES}
83         ${GEE_LIBRARIES}
84         ${GTHREAD_LIBRARIES}
85         ${JSON_LIBRARIES}
86 )
87 link_libraries(${LIBS})
88
89
90 set(LIB_PATHS
91         ${GOBJECT_LIBRARY_DIRS}
92         ${GIO_LIBRARY_DIRS}
93         ${GEE_LIBRARY_DIRS}
94         ${GTHREAD_LIBRARY_DIRS}
95         ${JSON_LIBRARY_DIRS}
96 )
97 link_directories(${LIB_PATHS})
98
99 set (LIBRARY_PATH "src")
100
101   
102 add_subdirectory(jsdoc)
103 add_subdirectory(bin)