find_package(ALSA) find_package(OSS) if (FQTERM_USE_STATIC_QT) ADD_DEFINITIONS(-DFQTERM_USE_STATIC_QT) endif(FQTERM_USE_STATIC_QT) if (ALSA_FOUND) ADD_DEFINITIONS(-DAUDIO_ALSA) SET(AUDIO_INCLUDE_DIR "${ALSA_INCLUDE_DIR}") SET(AUDIO_LIBRARY "${ALSA_LIBRARY}") else (ALSA_FOUND) if (OSS_FOUND) ADD_DEFINITIONS(-DAUDIO_OSS) SET(AUDIO_INCLUDE_DIR "${OSS_INCLUDE_DIR}") SET(AUDIO_LIBRARY) endif (OSS_FOUND) endif(ALSA_FOUND) ADD_DEFINITIONS(-Wall) ADD_DEFINITIONS(-D_OS_LINUX_) ADD_DEFINITIONS(--std=c++11) SET(WITH_ASAN OFF CACHE PATH "Use address sanitizer") ADD_EXECUTABLE(fqterm.bin src/fqterm/main.cpp ) IF (WITH_ASAN) target_compile_options(fqterm.bin PUBLIC -fsanitize=address -fno-omit-frame-pointer) SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address") ENDIF(WITH_ASAN) find_package(Qt5Core REQUIRED) find_package(Qt5Widgets REQUIRED) find_package(Qt5Network REQUIRED) find_package(Qt5Script REQUIRED) find_package(Qt5Multimedia REQUIRED) find_package(Qt5Xml REQUIRED) include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/src/common ${CMAKE_CURRENT_SOURCE_DIR}/src/protocol ${CMAKE_CURRENT_SOURCE_DIR}/src/terminal ${CMAKE_CURRENT_SOURCE_DIR}/src/utilities ${CMAKE_CURRENT_SOURCE_DIR}/src/ui ${AUDIO_INCLUDE_DIR} ) link_directories( ${QT_PLUGINS_DIR}/codecs ${QT_PLUGINS_DIR}/imageformats ) if (FQTERM_USE_STATIC_QT) set(FQ_QT_STATIC_PLUGINS ${QT_PLUGINS_DIR}/imageformats/libqgif.a ${QT_PLUGINS_DIR}/imageformats/libqjpeg.a ${QT_PLUGINS_DIR}/imageformats/libqmng.a ${QT_PLUGINS_DIR}/codecs/libqcncodecs.a ${QT_PLUGINS_DIR}/codecs/libqjpcodecs.a ${QT_PLUGINS_DIR}/codecs/libqkrcodecs.a ${QT_PLUGINS_DIR}/codecs/libqtwcodecs.a jpeg ) endif(FQTERM_USE_STATIC_QT) target_link_libraries(fqterm.bin ${FQTERM_LIBS} ${QT_QTNETWORK_LIBRARIES} ${QT_QTXML_LIBRARIES} ${QT_QTSCRIPT_LIBRARIES} ${FQ_QT_STATIC_PLUGINS} ${QT_LIBRARIES} ${AUDIO_LIBRARY} ${PYTHON_LIB} ${OPENSSL_CRYPTO_LIBRARY} X11 ) target_link_libraries(fqterm.bin Qt5::Core Qt5::Widgets) add_dependencies(fqterm.bin fqterm_main fqterm_common fqterm_terminal fqterm_protocol fqterm_ui fqterm_utilities fqterm_qm_target ) add_custom_target(love COMMAND FQTERM_RESOURCE=${CMAKE_SOURCE_DIR}/res ${CMAKE_BINARY_DIR}/fqterm.bin DEPENDS ${CMAKE_BINARY_DIR}/fqterm.bin ) INSTALL( FILES ${CMAKE_BINARY_DIR}/fqterm.bin DESTINATION bin/ PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ ) INSTALL( FILES ${CMAKE_SOURCE_DIR}/res/fqterm.sh DESTINATION bin/ PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ RENAME fqterm ) INSTALL( DIRECTORY ${CMAKE_SOURCE_DIR}/res/ DESTINATION share/FQTerm/ DIRECTORY_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ FILE_PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ PATTERN "*.svn*" EXCLUDE PATTERN "fqterm.desktop" EXCLUDE ) INSTALL( FILES ${CMAKE_SOURCE_DIR}/res/pic/fqterm_256x256.png DESTINATION share/pixmaps/ PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ RENAME fqterm.png ) INSTALL( FILES ${fqterm_qm_files} DESTINATION share/FQTerm/dict/ PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ ) INSTALL( FILES res/fqterm.desktop DESTINATION share/applications ) SET(CPACK_PACKAGE_CONTACT FireLakeWalker@gmail.com) SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE) SET(CPACK_SYSTEM_NAME Linux-i386) SET(CPACK_PACKAGE_VERSION ${FQTERM_VERSION}) SET(CPACK_DEBIAN_PACKAGE_VERSION ${FQTERM_VERSION}+i386) SET(CPACK_DEBIAN_PACKAGE_SECTION Network) SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "This package is generated by FQTerm team, to get a formal version, please visit http://packages.debian.org/sid/main/fqterm.") SET(CPACK_GENERATOR DEB) INCLUDE(CPack) # vim:ft=cmake: