You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
obconf-qt-packaging/src/CMakeLists.txt

112 lines
2.7 KiB

# 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)