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.
pcmanfm-qt-packaging/libfm-qt/CMakeLists.txt

149 lines
4.0 KiB

project(fm-qt)
set(LIBRARY_NAME "fm-qt5")
set(QTX_INCLUDE_DIRS "")
set(QTX_LIBRARIES Qt5::Widgets Qt5::X11Extras)
include_directories(
${QTX_INCLUDE_DIRS}
${LIBFM_INCLUDE_DIRS}
"${LIBFM_INCLUDEDIR}/libfm" # to workaround incorrect #include in fm-actions.
${LIBMENUCACHE_INCLUDE_DIRS}
${SYSTEM_LIBS_INCLUDE_DIRS}
"${CMAKE_CURRENT_BINARY_DIR}"
)
link_directories(
${LIBFM_LIBRARY_DIRS}
${LIBMENUCACHE_LIBRARY_DIRS}
${SYSTEM_LIBS_LIBRARY_DIRS}
)
set(libfm_SRCS
libfmqt.cpp
bookmarkaction.cpp
sidepane.cpp
icontheme.cpp
filelauncher.cpp
foldermodel.cpp
foldermodelitem.cpp
cachedfoldermodel.cpp
proxyfoldermodel.cpp
folderview.cpp
folderitemdelegate.cpp
filemenu.cpp
foldermenu.cpp
filepropsdialog.cpp
applaunchcontext.cpp
placesview.cpp
placesmodel.cpp
placesmodelitem.cpp
dirtreeview.cpp
dirtreemodel.cpp
dirtreemodelitem.cpp
dnddest.cpp
mountoperation.cpp
mountoperationpassworddialog.cpp
mountoperationquestiondialog.cpp
fileoperation.cpp
fileoperationdialog.cpp
renamedialog.cpp
pathedit.cpp
colorbutton.cpp
fontbutton.cpp
browsehistory.cpp
utilities.cpp
dndactionmenu.cpp
editbookmarksdialog.cpp
thumbnailloader.cpp
path.cpp
execfiledialog.cpp
appchoosercombobox.cpp
appmenuview.cpp
appchooserdialog.cpp
)
set(libfm_UIS
file-props.ui
file-operation-dialog.ui
rename-dialog.ui
mount-operation-password.ui
edit-bookmarks.ui
exec-file.ui
app-chooser-dialog.ui
)
qt5_wrap_ui(libfm_UIS_H ${libfm_UIS})
add_library(${LIBRARY_NAME} SHARED
${libfm_SRCS}
${libfm_UIS_H}
)
set_property(
TARGET ${LIBRARY_NAME} APPEND
PROPERTY COMPILE_DEFINITIONS
LIBFM_QT_COMPILATION=1
LIBFM_DATA_DIR="${CMAKE_INSTALL_FULL_DATADIR}/libfm-qt"
)
# only turn on custom actions support if it is enabled in libfm.
if(EXISTS ${LIBFM_INCLUDEDIR}/libfm/fm-actions.h)
set_property(TARGET ${LIBRARY_NAME} APPEND PROPERTY COMPILE_DEFINITIONS CUSTOM_ACTIONS)
endif()
target_link_libraries(${LIBRARY_NAME}
${QTX_LIBRARIES}
${LIBFM_LIBRARIES}
${LIBMENUCACHE_LIBRARIES}
${SYSTEM_LIBS_LIBRARIES}
)
# set libtool soname
set_target_properties(${LIBRARY_NAME} PROPERTIES
VERSION ${LIBFM_QT_LIB_VERSION}
SOVERSION ${LIBFM_QT_LIB_SOVERSION}
)
# install include header files (FIXME: can we make this cleaner? should dir name be versioned?)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
FILES_MATCHING PATTERN "*.h"
PATTERN "*_p.h" EXCLUDE # exclude private headers
)
# FIXME: add libtool version to the lib (soname) later.
# FIXME: only export public symbols
install(TARGETS ${LIBRARY_NAME}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER
)
# install a pkgconfig file for libfm-qt
set(REQUIRED_QT "Qt5Core >= 5.1 Qt5DBus >= 5.1")
configure_file(libfm-qt.pc.in lib${LIBRARY_NAME}.pc @ONLY)
# FreeBSD loves to install files to different locations
# http://www.freebsd.org/doc/handbook/dirstructure.html
if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/lib${LIBRARY_NAME}.pc" DESTINATION libdata/pkgconfig)
else()
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/lib${LIBRARY_NAME}.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
endif()
# add translation for pcmanfm-qt
# See http://www.cmake.org/Wiki/CMake:How_To_Build_Qt4_Software
option (UPDATE_TRANSLATIONS "Update source translation translations/*.ts files")
file(GLOB TS_FILES translations/*.ts)
if(UPDATE_TRANSLATIONS)
qt5_create_translation(QM_FILES ${libfm_SRCS} ${libfm_UIS} ${TS_FILES})
else()
qt5_add_translation(QM_FILES ${TS_FILES})
endif()
add_custom_target(libfm_translations DEPENDS ${QM_FILES})
install(FILES ${QM_FILES} DESTINATION "${CMAKE_INSTALL_DATADIR}/libfm-qt/translations")
# prevent the generated files from being deleted during make cleaner
set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM true)