jsdoc/CMakeLists.txt
authorAlan Knowles <alan@roojs.com>
Fri, 15 Feb 2019 04:55:54 +0000 (12:55 +0800)
committerAlan Knowles <alan@roojs.com>
Fri, 15 Feb 2019 04:55:54 +0000 (12:55 +0800)
jsdoc/CMakeLists.txt [new file with mode: 0644]

diff --git a/jsdoc/CMakeLists.txt b/jsdoc/CMakeLists.txt
new file mode 100644 (file)
index 0000000..61edc73
--- /dev/null
@@ -0,0 +1,86 @@
+
+set(VALA_SRC
+    Collapse.vala 
+    CompressWhite.vala 
+    Identifier.vala 
+    Lang.vala 
+    Packer.vala 
+    ScopeParser.vala 
+    Scope.vala 
+    TextStream.vala 
+    TokenReader.vala 
+    TokenStream.vala 
+    Token.vala 
+    PackerRun.vala 
+    Walker.vala 
+    SymbolSet.vala 
+    DocBuilder.vala 
+    DocComment.vala 
+    DocParser.vala 
+    DocTag.vala 
+    PrettyPrint.vala 
+    Symbol.vala
+)
+
+
+# Vala segfaults if its output dirs are not existant. Therefore make sure they
+# are there.
+macro(make_compile_directory directory)
+       if (NOT IS_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${directory}")
+               make_directory("${CMAKE_CURRENT_BINARY_DIR}/${directory}")
+       endif (NOT IS_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${directory}")
+endmacro(make_compile_directory)
+
+## ----------- the library
+
+vala_precompile_target(
+        "libroojspacker-vala"
+       VALA_C
+PACKAGES 
+       gio-2.0
+       gee-0.8
+        glib-2.0
+        gobject-2.0
+        json-glib-1.0
+HEADER roojspacker-1.2.h
+VAPI roojspacker-1.2
+    ${VALA_SRC}
+)
+
+add_library(libroojspacker 
+       SHARED
+       ${VALA_C} roojspacker.h
+)
+
+add_dependencies("libroojspacker" "libroojspacker-vala")
+
+# Set the library's version information
+set_target_properties (${MY_PROJECT_LIBRARY_NAME} PROPERTIES
+    SOVERSION "1.2.1000"
+    VERSION   "1.2")
+
+
+# Install our VAPI
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/roojspacker.vapi
+    DESTINATION ${CMAKE_INSTALL_DATADIR}/vala/vapi)
+    
+install (TARGETS "libroojspacker"
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}  # On Windows, the DLL goes in the same place as the executables
+    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}  # This is where shared libraries (*.so on Linux, *.dynlib on OS X)
+    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) # Finally, this is where static libraries (*.a) go
+
+# Install the C header
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/roojspacker-1.2.h
+    DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR})
+
+
+# pkg-config file..    
+configure_file (
+    "${CMAKE_CURRENT_SOURCE_DIR}/../roojspacker-1.2.pc.in"
+    "${CMAKE_CURRENT_BINARY_DIR}/roojspacker-1.2.pc"
+    @ONLY)
+    
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/roojspacker-1.2.pc
+  DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+