diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,7 @@ # along with serialplot. If not, see . # -cmake_minimum_required(VERSION 2.8.11) +cmake_minimum_required(VERSION 3.2.2) project(serialplot) @@ -161,25 +161,14 @@ else() message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") endif() -# get revision number from mercurial -find_program(MERCURIAL hg) +# default version +set(VERSION_STRING "0.9.1") +set(VERSION_REVISION "0") -if (MERCURIAL) - execute_process(COMMAND ${MERCURIAL} id -i - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - RESULT_VARIABLE MERCURIAL_RESULT - OUTPUT_VARIABLE VERSION_REVISION - OUTPUT_STRIP_TRAILING_WHITESPACE) - if(NOT MERCURIAL_RESULT EQUAL 0) - set(VERSION_SCM_REVISION false) - endif(NOT MERCURIAL_RESULT EQUAL 0) -endif (MERCURIAL) +# get revision number from mercurial and parse version string +include(GetVersion) -if (NOT VERSION_REVISION) - set(VERSION_REVISION "0") -endif (NOT VERSION_REVISION) - -message("SCM revision: ${VERSION_REVISION}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVERSION_STRING=\\\"${VERSION_STRING}\\\" ") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVERSION_REVISION=\\\"${VERSION_REVISION}\\\" ") # add make run target @@ -199,20 +188,19 @@ if (WIN32) install(FILES ${WINDOWS_INSTALL_LIBRARIES} DESTINATION bin) endif (WIN32) -# install menu item and icon +# prepare menu item and icon configure_file("${CMAKE_CURRENT_SOURCE_DIR}/misc/program_name.desktop.in" "${CMAKE_BINARY_DIR}/${PROGRAM_NAME}.desktop") configure_file("${CMAKE_CURRENT_SOURCE_DIR}/misc/program_name.png" "${CMAKE_BINARY_DIR}/${PROGRAM_NAME}.png" COPYONLY) +set(DESKTOP_FILE ${CMAKE_BINARY_DIR}/${PROGRAM_NAME}.desktop) +set(ICON_FILE ${CMAKE_BINARY_DIR}/${PROGRAM_NAME}.png) + +# install menu item and icon if (UNIX) - # first copy files to share/serialplot/ - install(FILES - ${CMAKE_BINARY_DIR}/${PROGRAM_NAME}.desktop - DESTINATION share/applications/) - install(FILES - ${CMAKE_BINARY_DIR}/${PROGRAM_NAME}.png - DESTINATION share/icons/hicolor/256x256/apps/) + install(FILES ${DESKTOP_FILE} DESTINATION share/applications/) + install(FILES ${ICON_FILE} DESTINATION share/icons/hicolor/256x256/apps/) endif (UNIX) # uninstalling @@ -227,6 +215,8 @@ if (UNIX) endif (UNIX) # packaging +include(BuildLinuxAppImage) + if (UNIX) set(CPACK_GENERATOR "DEB") elseif (WIN32) @@ -238,9 +228,9 @@ include(InstallRequiredSystemLibraries) set(CPACK_PACKAGE_NAME "${PROGRAM_NAME}") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Small and simple software for plotting data from serial port") set(CPACK_PACKAGE_CONTACT "Hasan Yavuz Ă–zderya ") -set(CPACK_PACKAGE_VERSION_MAJOR ${MAJOR_VERSION}) -set(CPACK_PACKAGE_VERSION_MINOR ${MINOR_VERSION}) -set(CPACK_PACKAGE_VERSION_PATCH ${PATCH_VERSION}) +set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR}) +set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR}) +set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH}) set(CPACK_STRIP_FILES TRUE) set(CPACK_DEBIAN_PACKAGE_DEPENDS "libqt5widgets5 (>= 5.2.1), libqt5svg5 (>= 5.2.1), libqt5serialport5 (>= 5.2.1), libc6 (>= 2.19)") set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "Small and simple software for plotting data from serial port