1 project("roojspacker" C CXX)
3 cmake_minimum_required(VERSION 3.2)
6 set(PROJECT_WEB "https://www.roojs.com/")
7 # Where to report bugs; usually either an e-mail address or an issue
9 set(PROJECT_BUGS "https://www.roojs.com/mtrack/")
10 # Gettext package name
11 #set(GETTEXT_PACKAGE ${PROJECT_NAME})
15 # This should be incremented with every release. See semver.org.
16 set (ROOJSPACKER_VERSION_MAJOR 1)
17 set (ROOJSPACKER_VERSION_MINOR 4)
18 set (ROOJSPACKER_VERSION_REVISION 0)
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.4")
25 set (ROOJSPACKER_SOVERSION_CURRENT ${ROOJSPACKER_VERSION_MAJOR})
26 set (ROOJSPACKER_SOVERSION_REVISION ${ROOJSPACKER_VERSION_MINOR})
27 set (ROOJSPACKER_SOVERSION_AGE ${ROOJSPACKER_VERSION_REVISION})
31 list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
34 find_package(GLib "2.38" REQUIRED)
35 find_package(Vala "0.36.0" REQUIRED)
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)
45 pkg_check_modules(JSON REQUIRED json-glib-1.0)
48 set(ROOJSPACKER_VALA_PACKAGES
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}
66 add_definitions(${CFLAGS})
70 if(CMAKE_BUILD_TYPE STREQUAL "")
71 set(CMAKE_BUILD_TYPE "Debug")
72 endif(CMAKE_BUILD_TYPE STREQUAL "")
74 list(APPEND VALA_COMPILER_FLAGS
78 "--vapidir=${CMAKE_SOURCE_DIR}/vapi"
80 list(APPEND VALA_COMPILER_FLAGs_DEBUG "--debug")
86 include(AddCompilerFlags)
88 global_add_compiler_flags(-Wno-incompatible-pointer-types)
98 link_libraries(${LIBS})
102 ${GOBJECT_LIBRARY_DIRS}
105 ${GTHREAD_LIBRARY_DIRS}
108 link_directories(${LIB_PATHS})
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})
114 # Name of the GObject Introspection repository for the library.
115 set(ROOJSPACKER_GIR_NAME "MyProject-${ROOJSPACKER_VERSION_API}")
117 set (LIBRARY_PATH "roojspacker")
119 add_subdirectory(roojspacker)
120 add_subdirectory(bin)