CMakeLists.txt 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. ########################################################
  2. #
  3. # This is a CMake configuration file.
  4. # To use it you need CMake which can be
  5. # downloaded from here:
  6. # http://www.cmake.org/cmake/resources/software.html
  7. #
  8. #########################################################
  9. cmake_minimum_required(VERSION 3.1.0)
  10. project(fb2edit)
  11. set(PACKAGE_VERSION "0.1.0")
  12. set(PACKAGE_VENDOR "LinTest")
  13. set(PACKAGE_NAME ${PROJECT_NAME})
  14. set(PACKAGE_STRING "${PROJECT_NAME} ${PACKAGE_VERSION}")
  15. set(PACKAGE_BUGREPORT "lav@etersoft.ru")
  16. set(CMAKE_AUTOMOC ON)
  17. set(CMAKE_AUTORCC ON)
  18. set(CMAKE_AUTOUIC ON)
  19. if(CMAKE_VERSION VERSION_LESS "3.7.0")
  20. set(CMAKE_INCLUDE_CURRENT_DIR ON)
  21. endif()
  22. message( STATUS "PACKAGE_NAME = ${PACKAGE_STRING}")
  23. set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/3rdparty/cmake)
  24. #find_program( QT_QMAKE_EXECUTABLE NAMES qmake5 qmake-qt5 qmake-mac )
  25. find_package( Qt5 5.5.0 COMPONENTS Core Gui Network Widgets WebKitWidgets Xml XmlPatterns LinguistTools REQUIRED )
  26. file( GLOB FB2_HEAD source/*.hpp )
  27. file( GLOB FB2_SRCS source/*.cpp )
  28. file( GLOB FB2_UIS source/*.ui )
  29. file( GLOB FB2_TSS source/ts/*.ts )
  30. #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GTK_PKG_FLAGS}")
  31. if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/.git)
  32. exec_program("git --git-dir=${CMAKE_SOURCE_DIR}/.git log --format=%ai//%h%d -1" OUTPUT_VARIABLE COMMIT_INFO)
  33. message( STATUS "COMMIT_INFO = ${COMMIT_INFO}")
  34. endif(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/.git)
  35. set(FB2_DEFINITIONS "PACKAGE_NAME=\"${PACKAGE_NAME}\"; PACKAGE_VENDOR=\"${PACKAGE_VENDOR}\"; PACKAGE_VERSION=\"${PACKAGE_VERSION}\"; COMMIT_INFO=\"${COMMIT_INFO}\"")
  36. set_source_files_properties( source/fb2app.cpp PROPERTIES COMPILE_DEFINITIONS "${FB2_DEFINITIONS}")
  37. set(FB2_RES
  38. 3rdparty/fb2/fb2.qrc
  39. 3rdparty/gnome/gnome.qrc
  40. source/js/javascript.qrc
  41. source/res/fb2edit.qrc
  42. )
  43. set(CMAKE_IN_SOURCE_BUILD TRUE)
  44. add_definitions(-Wall -g)
  45. qt5_wrap_ui(UI_HEADERS ${FB2_UIS})
  46. qt5_wrap_cpp(MOC_SRCS ${FB2_HEAD})
  47. qt5_add_resources(RCC_SRCS ${FB2_RES})
  48. qt5_add_translation(QMS_FILES ${FB2_TSS})
  49. message( STATUS "PACKAGE_NAME_ = ${CMAKE_PREFIX_PATH}")
  50. add_executable(fb2edit ${FB2_SRCS} ${FB2_HEAD} ${UI_HEADERS} ${MOC_SRCS} ${RCC_SRCS} ${QMS_FILES})
  51. #include(${QT_USE_FILE})
  52. #include_directories(${QT_INCLUDES})
  53. include_directories(${CMAKE_BINARY_DIR})
  54. target_link_libraries(fb2edit PUBLIC
  55. Qt5::Core Qt5::Gui Qt5::Network Qt5::Widgets Qt5::WebKitWidgets Qt5::Xml Qt5::XmlPatterns
  56. )
  57. #add_definitions(${QT_DEFINITIONS})
  58. #############################################################################
  59. # You can change the install location by
  60. # running cmake like this:
  61. #
  62. # cmake -DCMAKE_INSTALL_PREFIX=/new/install/prefix
  63. #
  64. # By default, the prefix is "/usr/local"
  65. #
  66. if( UNIX AND NOT APPLE )
  67. install( TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin )
  68. install( FILES desktop/fb2edit.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications )
  69. install( FILES desktop/fb2edit048.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/48x48/apps RENAME fb2edit.png )
  70. install( FILES desktop/fb2edit128.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/128x128/apps RENAME fb2edit.png )
  71. install( FILES desktop/fb2edit256.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/256x256/apps RENAME fb2edit.png )
  72. install( FILES ${QM_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/fb2edit/translations )
  73. install( CODE "FILE(MAKE_DIRECTORY WORKING_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/share/pixmaps/)" )
  74. install( CODE "EXECUTE_PROCESS( COMMAND ${CMAKE_COMMAND} -E create_symlink ../icons/hicolor/48x48/apps/fb2edit.png fb2edit.png WORKING_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/share/pixmaps)" )
  75. endif()