set (PKGNAME varka)
set (PKGNAME_ VARKA)
set (${PKGNAME_}_VERSION 0.1)
# increase when you break the API

set (${PKGNAME_}_SOVERSION 0)
# Increase when you add functionality

#

# varka.pc

#

set (PREFIX ${CMAKE_INSTALL_PREFIX})
set (DOLLAR "$")
# You hear that? It's kittens being killed by the gods of cmake

configure_file (${CMAKE_CURRENT_SOURCE_DIR}/${PKGNAME}.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PKGNAME}.pc)
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${PKGNAME}.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig/)
# Check for the deps

find_package(PkgConfig)
find_package(GObjectIntrospection 0.9.12)
include(GObjectIntrospectionMacros)
set(PKG_DEPS gtk+-3.0 gio-unix-2.0)
pkg_check_modules(DEPS REQUIRED gtk+-3.0 gio-unix-2.0)
# Link all

set(CFLAGS ${DEPS_CFLAGS} ${DEPS_CFLAGS_OTHER})
add_definitions(${CFLAGS} "-DGETTEXT_PACKAGE=\"VARKA\"")
set(LIBS
    ${DEPS_LIBRARIES}
)
set(LIB_PATHS
    ${DEPS_LIBRARY_DIRS}
)
link_directories(${LIB_PATHS})
#VALA stuff

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Widgets/)
find_package(Vala REQUIRED)
include(ValaVersion)
ensure_vala_version("0.12.0" MINIMUM)
include(ValaPrecompile)
vala_precompile(VALA_C
    Logger.vala
    IconFactory.vala
    GtkPatch/AboutDialog.vala
    Widgets/WrapLabel.vala
    Widgets/AboutDialog.vala
    Widgets/ModeButton.vala
    Widgets/CollapsiblePaned.vala
    Widgets/StaticNotebook.vala
    Widgets/ButtonWithMenu.vala
    Widgets/ToolButtonWithMenu.vala
    Widgets/ImgEventBox.vala
    Widgets/XsEntry.vala
    config.vapi
CUSTOM_VAPIS
    ${CMAKE_CURRENT_SOURCE_DIR}/GtkPatch/gtkpatch-utils.vapi
PACKAGES
    ${PKG_DEPS}
    posix
OPTIONS
    --thread
GENERATE_VAPI
    varka
GENERATE_HEADER
    varka
)
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/varka.vapi DESTINATION ${CMAKE_INSTALL_PREFIX}/share/vala/vapi/)
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/varka.deps DESTINATION ${CMAKE_INSTALL_PREFIX}/share/vala/vapi/)
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/varka.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/varka/)
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/Widgets/widgets-utils.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/varka/)
add_library (${PKGNAME} SHARED
    GtkPatch/gtkpatch-utils.c
    Widgets/widgets-utils.c
    ${VALA_C}
)
target_link_libraries(${PKGNAME} ${LIBS})
if(BUILD_STATIC MATCHES "Yes")
ADD_LIBRARY(${PKGNAME}-static STATIC ${VALA_C})
target_link_libraries(${PKGNAME}-static ${LIBS})
# The library target "foo" already has a default OUTPUT_NAME of "foo", so we don't need to change it.

# The library target "foo-static" has a default OUTPUT_NAME of "foo-static", so change it.

SET_TARGET_PROPERTIES(${PKGNAME}-static PROPERTIES OUTPUT_NAME ${PKGNAME})
install (TARGETS ${PKGNAME}-static DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/)
endif(BUILD_STATIC MATCHES "Yes")
set_target_properties (${PKGNAME} PROPERTIES
    VERSION ${VARKA_VERSION}
    SOVERSION ${VARKA_SOVERSION}
                       )
install (TARGETS ${PKGNAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/)

macro(_list_prefix _outvar _listvar _prefix)
  set(${_outvar})
  foreach(_item IN LISTS ${_listvar})
    list(APPEND ${_outvar} ${_prefix}${_item})
  endforeach()
endmacro(_list_prefix)

# GObject Introspection
include(GObjectIntrospectionMacros)
add_target_gir(varka Varka varka.h "${DEPS_CFLAGS}" 0.1 Gtk-3.0)

add_custom_target(docs)
add_custom_command (TARGET docs COMMAND rm ${CMAKE_CURRENT_BINARY_DIR}/docs -R -f)
add_custom_command (TARGET docs COMMAND valadoc -o docs --doclet-arg=${CMAKE_CURRENT_BINARY_DIR}/varka.h ${CMAKE_CURRENT_SOURCE_DIR}/*/*.vala ${CMAKE_CURRENT_SOURCE_DIR}/*.vapi ${CMAKE_CURRENT_SOURCE_DIR}/*.vala --pkg=posix --pkg=gtk+-3.0 --pkg=gio-unix-2.0 --package-name=varka --package-version=0.1.1 --doclet=gtkdoc)
add_custom_target (valadocs)
add_custom_command (TARGET valadocs COMMAND rm ${CMAKE_CURRENT_BINARY_DIR}/docs_vala -R -f)
add_custom_command (TARGET valadocs COMMAND VALADOC_HEADER=${CMAKE_CURRENT_SOURCE_DIR}/docs/header.html valadoc -o docs_vala ${CMAKE_CURRENT_SOURCE_DIR}/*/*.vala ${CMAKE_CURRENT_SOURCE_DIR}/*.vapi ${CMAKE_CURRENT_SOURCE_DIR}/*.vala --pkg=glib-2.0 --pkg=gio-2.0 --pkg=posix --pkg=gtk+-3.0 --pkg=gio-unix-2.0 --package-name=Varka --package-version=0.1.1 --force --doclet=elementary)

