view ui/CMakeLists.txt @ 249:6a7eb102716d

Remove code duplication by unifying the certificatelist. You should now check for isInstallCert to determine wether this certificate should be installed or removed. Leaving the getInstallCertificates and getRemoveCertificates in place for compatibilty would have been easier to keep the tests stable.
author Andre Heinecke <aheinecke@intevation.de>
date Mon, 31 Mar 2014 08:06:17 +0000
parents be628d261617
children cb8d7af5ec3a
line wrap: on
line source
include_directories(${Qt5Widgets_INCLUDE_DIRS})
include_directories(${POLARSSL_INCLUDE_DIR})
add_definitions(${Qt5Widgets_DEFINITIONS})

set(CERTIFICATELIST_SOURCES
    ${CMAKE_CURRENT_SOURCE_DIR}/certificatelist.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/certificate.cpp
)

set(DOWNLOADER_SOURCES
    ${CMAKE_CURRENT_SOURCE_DIR}/downloader.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/sslconnection.cpp
)

set(M13UI_SOURCES
    ${CMAKE_CURRENT_SOURCE_DIR}/mainwindow.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/listupdatedialog.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/helpdialog.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/aboutdialog.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/statusdialog.cpp
    ${CERTIFICATELIST_SOURCES}
    ${DOWNLOADER_SOURCES}
)

# Seperated to make it easier to include the sources in tests
set(M13UI_RESOURCES
   ${CMAKE_CURRENT_SOURCE_DIR}/icons.qrc
   ${CMAKE_CURRENT_SOURCE_DIR}/certs.qrc
)

if(UNIX)
   # See: https://bugreports.qt-project.org/browse/QTBUG-35918
   # XCB_EXTRA_LIBS should be gotten automatically.
   # The following list is taken from the .pri file
   get_target_property(_loc Qt5::Widgets LOCATION)
   get_filename_component(_qtpath ${_loc} PATH)

   if(NOT XKBCOMMON_LIB)
      # Hack on a hack to overwrite the xkbcommon libname.
      set(XKBCOMMON_LIB -lxkbcommon)
   endif()

   set(XCB_EXTRA_LIBS
      -L${_qtpath}
      -lX11 -lX11-xcb -lXi -lxcb-render-util -lXrender -lSM -lICE -lxcb-render -ldbus-1
      -lxcb -lxcb-image -lxcb-icccm -lxcb-sync -lxcb-xfixes -lxcb-shm -lxcb-randr
      ${XKBCOMMON_LIB} -lxcb-shape -lxcb-keysyms -lQt5PlatformSupport
      -lfreetype -lQt5DBus -lQt5Gui -ljpeg -lpng -lQt5Core
      -lz -lm -ldl -lrt -lpthread)

   set(EXTRA_STATIC_LIBS -lz -lpthread -ldl -lpng -ljpeg
      Qt5::QXcbIntegrationPlugin ${XCB_EXTRA_LIBS})

elseif(WIN32)
   get_target_property(_loc Qt5::Widgets LOCATION)
   get_filename_component(_qtpath ${_loc} PATH)
   set(WINDOWS_EXTRA_LIBS
        -L${_qtpath}
        -lwinspool -lshlwapi -lfreetype -lbz2 -lpng16
        -lQt5PlatformSupport -lQt5Gui -lcomdlg32 -loleaut32 -limm32 -lwinmm
        -lglu32 -lopengl32 -lgdi32 -ljpeg -lpng -lQt5Core -lole32 -luuid -lws2_32
        -ladvapi32 -lshell32 -luser32 -lkernel32 -lz -lsicuin -lsicuuc -lsicudt -lpcre16)

   set(EXTRA_STATIC_LIBS Qt5::QWindowsIntegrationPlugin ${WINDOWS_EXTRA_LIBS} -lwinhttp -lcrypt32)
endif()

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")

generate_cppcheck(SOURCES ${CINST_SOURCES} ${M13UI_SOURCES} TARGET_NAME m13_cppcheck)
add_dependencies(static_check m13_cppcheck)

# Adding resources here in an extra variable to enable reuse of
# M13UI_SOURCES in the test subdirectory.
set(M13UI_SOURCES_WITH_RESOURCES ${M13UI_SOURCES})
qt5_add_resources(M13UI_SOURCES_WITH_RESOURCES ${M13UI_RESOURCES})
add_executable(m13ui ${M13UI_SOURCES_WITH_RESOURCES})

target_link_libraries(m13ui Qt5::Widgets
   m13_common
   ${POLARSSL_LIBRARIES}
   ${EXTRA_STATIC_LIBS}
   ${PROFILING_LIBS})

# Tests
add_subdirectory(tests)

install(TARGETS m13ui DESTINATION bin)

http://wald.intevation.org/projects/trustbridge/