# set visibility to hidden to hide symbols, unlesss they're exporeted manually in the code set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DQT_NO_KEYWORDS -fno-exceptions") if(USE_QT4) set(QTX_INCLUDE_DIRS ${QT_QTCORE_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} ${QT_QTDBUS_DIR}) set(QTX_LIBRARIES ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTDBUS_LIBRARY}) else() set(QTX_INCLUDE_DIRS "") set(QTX_LIBRARIES Qt5::Widgets Qt5::X11Extras) endif() include_directories( ${QTX_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS} ${OPENBOX_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} ) set(obconf-qt_SRCS obconf-qt.cpp maindialog.cpp appearance.cpp windows.cpp mouse.cpp moveresize.cpp margins.cpp desktops.cpp dock.cpp tree.cpp archive.cpp theme.cpp fontbutton.cpp ) set(obconf-qt_UIS obconf.ui ) if(USE_QT4) qt4_wrap_ui(obconf-qt_UI_H ${obconf-qt_UIS}) else() qt5_wrap_ui(obconf-qt_UI_H ${obconf-qt_UIS}) endif() # The ui code generated by Qt uic contains QMetaObject::connectSlotsByName() # but we don't want that. Fix it with sed. add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ui_obconf_fixed.h COMMAND ${SED_PROGRAM} ARGS "/connectSlotsByName/d" ${obconf-qt_UI_H} > ${CMAKE_CURRENT_BINARY_DIR}/ui_obconf_fixed.h # DEPENDS MAIN_DEPENDENCY ${obconf-qt_UI_H} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Fixing generated ui code" VERBATIM ) # add translation for obconf-qt option (UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF) include(LXQtTranslateTs) lxqt_translate_ts(QM_FILES USE_QT4 ${USE_QT4} UPDATE_TRANSLATIONS ${UPDATE_TRANSLATIONS} SOURCES ${obconf-qt_SRCS} ${obconf-qt_UI_H} INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/translations" PULL_TRANSLATIONS ${PULL_TRANSLATIONS} CLEAN_TRANSLATIONS ${CLEAN_TRANSLATIONS} TRANSLATIONS_REPO ${TRANSLATIONS_REPO} TRANSLATIONS_REFSPEC ${TRANSLATIONS_REFSPEC} ) # install a desktop entry file include(LXQtTranslateDesktop) lxqt_translate_desktop(DESKTOP_FILES TRANSLATION_DIR "translations" SOURCES obconf-qt.desktop.in ) install(FILES ${DESKTOP_FILES} DESTINATION share/applications) # prevent the generated files from being deleted during make clean set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM true) add_executable(obconf-qt ${obconf-qt_SRCS} ${obconf-qt_UI_H} ${QM_FILES} ${DESKTOP_FILES} ) add_definitions( -DPACKAGE_DATA_DIR="${CMAKE_INSTALL_FULL_DATAROOTDIR}/obconf-qt" -DPIXMAPS_DIR="${CMAKE_INSTALL_FULL_DATAROOTDIR}/pixmaps" -DTHEME_DIR="${CMAKE_INSTALL_FULL_DATAROOTDIR}/openbox/themes" ) target_link_libraries(obconf-qt ${QTX_LIBRARIES} ${GLIB_LIBRARIES} ${OPENBOX_LIBRARIES} ) install(TARGETS obconf-qt RUNTIME DESTINATION bin)