# -*- CMakeLists.txt generated by CodeLite IDE. Do not edit by hand -*-

cmake_minimum_required(VERSION 2.8.11)

# Project name
project(notekit)

# This setting is useful for providing JSON file used by CodeLite for code completion
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)

set(CONFIGURATION_NAME "Release")

set(CL_WORKSPACE_DIRECTORY .)
# Set default locations
set(CL_OUTPUT_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/${CL_WORKSPACE_DIRECTORY}/cmake-build-${CONFIGURATION_NAME}/output)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CL_OUTPUT_DIRECTORY})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CL_OUTPUT_DIRECTORY})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CL_OUTPUT_DIRECTORY})

# Projects


# Top project
# Define some variables
set(PROJECT_notekit_PATH "${CMAKE_CURRENT_LIST_DIR}")
set(WORKSPACE_PATH "${CMAKE_CURRENT_LIST_DIR}/")



#{{{{ User Code 1
option (HAVE_LASEM "Use lasem-0.6 library to render LaTeX math" OFF)
set (LASEM_PATH "${CMAKE_CURRENT_LIST_DIR}/lasem/" CACHE STRING "Base path for lasem-0.6")

option (HAVE_CLATEXMATH "Use cLaTeXMath to render LaTeX math" OFF)
set (CLATEXMATH_PATH "${CMAKE_CURRENT_LIST_DIR}/cLaTeXMath/" CACHE STRING "Base path for cLaTeXMath")

option (MIGRATE_LEGACY_SETTINGS "Migrate settings from legacy config file" ON)

set(DEFAULT_SETTINGS_PROVIDER "json" CACHE STRING "GSettings backend")
set_property(CACHE DEFAULT_SETTINGS_PROVIDER PROPERTY STRINGS json gio)

set (LATEX_COMMENT_START "<!--")
set (LATEX_COMMENT_END "-->")

if (HAVE_LASEM)
    include_directories("${LASEM_PATH}/src/")
    set (LATEX_COMMENT_START "")
    set (LATEX_COMMENT_END "")
endif (HAVE_LASEM)

if (HAVE_CLATEXMATH)
    include_directories("${CLATEXMATH_PATH}/src/")
    set (LATEX_COMMENT_START "")
    set (LATEX_COMMENT_END "")
    find_package(PkgConfig)
    # due to
    # https://github.com/NanoMichael/cLaTeXMath/pull/68
    # https://github.com/NanoMichael/cLaTeXMath/pull/70
    # we have to link tinyxml2 manually now
    pkg_check_modules(tinyxml2 tinyxml2)
endif (HAVE_CLATEXMATH)

configure_file (
  "${CMAKE_CURRENT_LIST_DIR}/config.h.in"
  "${CMAKE_CURRENT_LIST_DIR}/config.h"
  )

configure_file (
  "${CMAKE_CURRENT_LIST_DIR}/sourceview/markdown.lang.in"
  "${CMAKE_CURRENT_LIST_DIR}/sourceview/markdown.lang"
  )

execute_process (COMMAND pkg-config gio-2.0 --variable glib_compile_schemas  OUTPUT_VARIABLE _glib_comple_schemas OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process (COMMAND ${_glib_comple_schemas} --dry-run --schema-file=${CMAKE_CURRENT_SOURCE_DIR}/gnome/com.github.blackhole89.notekit.gschema.xml ERROR_VARIABLE _schemas_invalid OUTPUT_STRIP_TRAILING_WHITESPACE)

if (_schemas_invalid)
  message (SEND_ERROR "Schema validation error: ${_schemas_invalid}")
endif (_schemas_invalid)

add_custom_command(
    OUTPUT "${CMAKE_CURRENT_LIST_DIR}/data/gschemas.compiled"
    WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/gnome"
    COMMAND
        "${_glib_comple_schemas}"
    ARGS
        "${CMAKE_CURRENT_LIST_DIR}/gnome"
        "--targetdir=${CMAKE_CURRENT_LIST_DIR}/data"
    DEPENDS
        "${CMAKE_CURRENT_LIST_DIR}/gnome/com.github.blackhole89.notekit.gschema.xml"
    VERBATIM
)

add_custom_target(schema SOURCES "${CMAKE_CURRENT_LIST_DIR}/data/gschemas.compiled")
#}}}}

include_directories(
    .
    .

)


# Compiler options
execute_process(COMMAND 
    pkg-config --cflags gtkmm-3.0
    OUTPUT_VARIABLE
    CL_TMP_VAR
    OUTPUT_STRIP_TRAILING_WHITESPACE)
string(STRIP ${CL_TMP_VAR} CL_VAR_1)
execute_process(COMMAND 
    pkg-config --cflags gtksourceviewmm-3.0
    OUTPUT_VARIABLE
    CL_TMP_VAR
    OUTPUT_STRIP_TRAILING_WHITESPACE)
string(STRIP ${CL_TMP_VAR} CL_VAR_2)
execute_process(COMMAND 
    pkg-config --cflags jsoncpp
    OUTPUT_VARIABLE
    CL_TMP_VAR
    OUTPUT_STRIP_TRAILING_WHITESPACE)
string(STRIP ${CL_TMP_VAR} CL_VAR_3)
execute_process(COMMAND 
    pkg-config --cflags fontconfig
    OUTPUT_VARIABLE
    CL_TMP_VAR
    OUTPUT_STRIP_TRAILING_WHITESPACE)
string(STRIP ${CL_TMP_VAR} CL_VAR_4)
add_definitions(${CL_VAR_1})
add_definitions(${CL_VAR_2})
add_definitions(${CL_VAR_3})
add_definitions(${CL_VAR_4})
add_definitions(-std=c++17)
add_definitions(-O2)
add_definitions(-Wall)
add_definitions(
    -DNDEBUG
)


# Linker options
execute_process(COMMAND 
    pkg-config --libs gtkmm-3.0
    OUTPUT_VARIABLE
    CL_TMP_VAR
    OUTPUT_STRIP_TRAILING_WHITESPACE)
string(STRIP ${CL_TMP_VAR} CL_VAR_5)
execute_process(COMMAND 
    pkg-config --libs gtksourceviewmm-3.0
    OUTPUT_VARIABLE
    CL_TMP_VAR
    OUTPUT_STRIP_TRAILING_WHITESPACE)
string(STRIP ${CL_TMP_VAR} CL_VAR_6)
execute_process(COMMAND 
    pkg-config --libs jsoncpp
    OUTPUT_VARIABLE
    CL_TMP_VAR
    OUTPUT_STRIP_TRAILING_WHITESPACE)
string(STRIP ${CL_TMP_VAR} CL_VAR_7)
set(LINK_OPTIONS ${CL_VAR_5})
set(LINK_OPTIONS ${LINK_OPTIONS} ${CL_VAR_6})
set(LINK_OPTIONS ${LINK_OPTIONS} ${CL_VAR_7})


if(WIN32)
    # Resource options
endif(WIN32)

# Library path
link_directories(
    .
)

# Define the CXX sources
set ( CXX_SRCS
    ${CMAKE_CURRENT_LIST_DIR}/settings.cpp
    ${CMAKE_CURRENT_LIST_DIR}/mainwindow.cpp
    ${CMAKE_CURRENT_LIST_DIR}/main.cpp
    ${CMAKE_CURRENT_LIST_DIR}/navigation.cpp
    ${CMAKE_CURRENT_LIST_DIR}/imagewidgets.cpp
    ${CMAKE_CURRENT_LIST_DIR}/notebook.cpp
    ${CMAKE_CURRENT_LIST_DIR}/drawing.cpp
    ${CMAKE_CURRENT_LIST_DIR}/about.cpp
)

set_source_files_properties(
    ${CXX_SRCS} PROPERTIES COMPILE_FLAGS 
    " -std=c++17 -pthread -pthread -O2 -Wall")

if(WIN32)
    enable_language(RC)
    set(CMAKE_RC_COMPILE_OBJECT
        "<CMAKE_RC_COMPILER> ${RC_OPTIONS} -O coff -i <SOURCE> -o <OBJECT>")
endif(WIN32)



#{{{{ User Code 2
if (HAVE_LASEM)
    set(LINK_OPTIONS -L${LASEM_PATH}/src/.libs/ -l:liblasem-0.6.a ${LINK_OPTIONS})
endif (HAVE_LASEM)

if (HAVE_CLATEXMATH)
    set(LINK_OPTIONS -L${CLATEXMATH_PATH}/ -l:libLaTeX.a -l${tinyxml2_LIBRARIES} ${LINK_OPTIONS})
endif (HAVE_CLATEXMATH)
#}}}}

add_executable(notekit ${RC_SRCS} ${CXX_SRCS} ${C_SRCS})
target_link_libraries(notekit ${LINK_OPTIONS})

target_link_libraries(notekit
    z
    fontconfig
)



#{{{{ User Code 3
if (HAVE_LASEM)
    target_link_libraries(notekit xml2)
endif (HAVE_LASEM)

if (HAVE_CLATEXMATH)
    target_link_libraries(notekit fontconfig)
endif (HAVE_CLATEXMATH)

add_dependencies(notekit schema)

install(TARGETS notekit DESTINATION bin)
install(DIRECTORY data DESTINATION share/notekit)
install(DIRECTORY sourceview DESTINATION share/notekit)
#}}}}

