#
# Define CMake minimum
cmake_minimum_required(VERSION 3.9)

#
# Project Name: wmcpuwatch
project(wmcpuwatch
    VERSION 0.2)

#
# Expand CMake module path to local module path
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules")

#
# Check for needed libraries
find_package(dockapp REQUIRED)
find_package(X11 REQUIRED)

#
# Setup configure the config.h file
configure_file(
    ${CMAKE_CURRENT_SOURCE_DIR}/config.h.in
    ${CMAKE_CURRENT_BINARY_DIR}/config.h
    @ONLY)

#
# Define include directories
include_directories(
    ${DOCKAPP_INCLUDE_DIR}
    ${X11_X11_INCLUDE_PATH})

#
# Define link directories
link_directories(
    ${DOCKAPP_LIBRARY}
    ${X11_X11_LIB})

#
# Build stuff in subdriectories
add_subdirectory(doc)

#
# Define the final dockapp
add_executable(wmcpuwatch
    ulllib.h
    ulllib.c
    wmcpuwatch.c
    wmcpuwatch-mask.xbm
    wmcpuwatch-master.xpm)
target_link_libraries(wmcpuwatch
    ${DOCKAPP_LIBRARY}
    ${X11_X11_LIB})

#
# Install the binary, the man page and the other doc
install(TARGETS wmcpuwatch RUNTIME DESTINATION bin)
install(FILES wmcpuwatch.1 DESTINATION share/man/man1)
install(FILES wmcpuwatch.desktop DESTINATION share/applications)
install(FILES README.md DESTINATION share/doc/${CMAKE_PROJECT_NAME})
install(FILES ChangeLog DESTINATION share/doc/${CMAKE_PROJECT_NAME} RENAME changelog)

#
# Create a source tarball using CPack
set(CPACK_PACKAGE_VERSION_MAJOR ${wmcpuwatch_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${wmcpuwatch_VERSION_MINOR})
set(CPACK_SOURCE_GENERATOR "TBZ2")
set(CPACK_SOURCE_PACKAGE_FILE_NAME
    "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
set(CPACK_SOURCE_IGNORE_FILES
    "/.hg/;/CMakeFiles/;/_CPack_Packages/;/doc/CMakeFiles/;/doc/html/;${CPACK_SOURCE_IGNORE_FILES}")
set(CPACK_SOURCE_IGNORE_FILES
    "CMakeCache.txt;Makefile;cmake_install.cmake;wmcpuwatch$;wmcpuwatch.cfg;wmcpuwatch.geany;.tar.bz2;CMakeDoxyfile.in;CMakeDoxygenDefaults.cmake;install_manifest.txt;CPackConfig.cmake;CPackSourceConfig.cmake;config.h$;${CPACK_SOURCE_IGNORE_FILES}")
set(CPACK_SOURCE_IGNORE_FILES
    "doc/Makefile;doc/cmake_install.cmake;doc/doxygen_out.log;doc/doxygen_warn.log;doc/Doxyfile$;${CPACK_SOURCE_IGNORE_FILES}")
include(CPack)
