diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2015-06-03 12:12:46 +0200 | 
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2015-06-03 12:12:46 +0200 | 
| commit | c940bf21c74ea8bd4d3dfe10771536d93479d3aa (patch) | |
| tree | 926ff9c9dd5ff6e78d624a735aa6813cab0046b8 | |
| parent | 2d09c043328b63e2d1fa7c3c3eefeef4af590dd8 (diff) | |
cmake: restrict include directories to their targets
There's no longer a need to rebuild the whole project after just a
single plugin gets enabled. Included directories now remain specific to
individual modules.
| -rw-r--r-- | CMakeLists.txt | 39 | 
1 files changed, 16 insertions, 23 deletions
| diff --git a/CMakeLists.txt b/CMakeLists.txt index c7e3cedc..e96443cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,11 +22,10 @@ set(CMAKE_AUTOMOC OFF)  set(CMAKE_POSITION_INDEPENDENT_CODE ON)  find_package(OpenCV) -include_directories(${OpenCV_INCLUDE_DIRS})  find_package(Qt5 REQUIRED COMPONENTS Core Xml Network Widgets Gui QUIET)  find_package(Qt5 COMPONENTS SerialPort QUIET) -include_directories(${Qt5Core_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS}) +include_directories(SYSTEM ${Qt5Core_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS})  add_definitions(${Qt5Core_DEFINITIONS} ${Qt5Xml_DEFINITIONS} ${Qt5Gui_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5Network_DEFINITIONS})  set(my-qt-deps) @@ -178,30 +177,21 @@ endif()  # ---- -if(SDK_XPLANE) -    INCLUDE_DIRECTORIES(${SDK_XPLANE}/CHeaders ${SDK_XPLANE}/CHeaders/XPLM) -endif() -  if(WIN32)    if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC)      set(CMAKE_RC_COMPILER_INIT i686-w64-mingw32-windres) -    SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>") +    SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> --use-temp-file -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")    endif()    ENABLE_LANGUAGE(RC)  endif(WIN32) -if(SDK_FSUIPC AND WIN32) -    include_directories(${SDK_FSUIPC}) -    link_directories(${SDK_FSUIPC}) -endif() -  opentrack_module(opentrack-compat compat)  opentrack_module(opentrack-xplane-plugin x-plane-plugin) -#opentrack_module(freetrackclient freetrackclient)  if(SDK_XPLANE)      # probably librt already included      add_library(opentrack-xplane-plugin SHARED ${opentrack-xplane-plugin-c}) +    target_include_directories(opentrack-xplane-plugin SYSTEM PUBLIC ${SDK_XPLANE}/CHeaders ${SDK_XPLANE}/CHeaders/XPLM)      if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC AND NOT APPLE)          SET_TARGET_PROPERTIES(opentrack-xplane-plugin              PROPERTIES LINK_FLAGS @@ -230,16 +220,16 @@ add_library(opentrack-csv STATIC ${opentrack-csv-c})  target_link_libraries(opentrack-csv ${MY_QT_LIBS})  opentrack_module(opentrack-pose-widget pose-widget) -include_directories(pose-widget/) # else Qt moc breaks  opentrack_qt(opentrack-pose-widget)  add_library(opentrack-pose-widget STATIC ${opentrack-pose-widget-all}) +target_include_directories(opentrack-pose-widget PUBLIC pose-widget/) # else Qt moc breaks  target_link_libraries(opentrack-pose-widget ${MY_QT_LIBS})  opentrack_module(opentrack-spline-widget qfunctionconfigurator) -include_directories(qfunctionconfigurator/)  opentrack_qt(opentrack-spline-widget)  add_library(opentrack-spline-widget STATIC ${opentrack-spline-widget-all}) +target_include_directories(opentrack-spline-widget PUBLIC qfunctionconfigurator/)  target_link_libraries(opentrack-spline-widget ${MY_QT_LIBS})  add_library(opentrack-version STATIC opentrack/version.C) @@ -254,31 +244,33 @@ opentrack_library(opentrack-filter-ewma ftnoir_filter_ewma2)  opentrack_library(opentrack-proto-fgfs ftnoir_protocol_fg)  if(SDK_VJOY) -    include_directories(${SDK_VJOY})      set(link-flags)      if(CMAKE_C_COMPILER_IS_GNUCC)          set(link-flags "-Wl,--enable-stdcall-fixup")      endif()      opentrack_library(opentrack-proto-vjoy ftnoir_protocol_vjoy LINK ${link-flags})      target_link_libraries(opentrack-proto-vjoy ${MY_QT_LIBS} ${SDK_VJOY}/VJoy.dll) +    target_include_directories(opentrack-proto-vjoy SYSTEM PUBLIC ${SDK_VJOY})  endif()  if(SDK_ENABLE_LIBEVDEV)      opentrack_library(opentrack-proto-libevdev ftnoir_protocol_libevdev)      pkg_check_modules(libevdev REQUIRED QUIET libevdev) -    include_directories(${libevdev_INCLUDE_DIRS})      target_link_libraries(opentrack-proto-libevdev ${libevdev_LIBRARIES}) +    include_directories(opentrack-proto-libevdev SYSTEM PUBLIC ${libevdev_INCLUDE_DIRS})  endif()  if(SDK_FSUIPC)      opentrack_library(opentrack-proto-fsuipc ftnoir_protocol_fsuipc)      target_link_libraries(opentrack-proto-fsuipc ${SDK_FSUIPC}/FSUIPC_User.lib) +    target_include_directories(opentrack-proto-fsuipc SYSTEM PUBLIC ${SDK_FSUIPC}) +    #target_link_directories(${SDK_FSUIPC})  endif()  if(SDK_SIMCONNECT)      opentrack_library(opentrack-proto-simconnect ftnoir_protocol_sc) -    include_directories(${SDK_SIMCONNECT}/inc)      target_link_libraries(opentrack-proto-simconnect ${SDK_SIMCONNECT}/lib/SimConnect.lib) +    include_directories(opentrack-proto-simconnect SYSTEM PUBLIC ${SDK_SIMCONNECT}/inc)  endif()  if(WIN32) @@ -295,8 +287,8 @@ endif()  if(Qt5SerialPort_FOUND)      opentrack_library(opentrack-tracker-hatire ftnoir_tracker_hatire) -    include_directories(${Qt5SerialPort_INCLUDE_DIRS})      target_link_libraries(opentrack-tracker-hatire ${Qt5SerialPort_LIBRARIES}) +    target_include_directories(opentrack-tracker-hatire SYSTEM PUBLIC ${Qt5SerialPort_INCLUDE_DIRS})  endif()  if(SDK_WINE_PREFIX) @@ -332,11 +324,14 @@ opentrack_library(opentrack-tracker-freepie-udp ftnoir_tracker_freepie-udp)  if(OpenCV_FOUND)      opentrack_library(opentrack-tracker-pt ftnoir_tracker_pt)      target_link_libraries(opentrack-tracker-pt ${OpenCV_LIBS}) +    target_include_directories(opentrack-tracker-pt SYSTEM PUBLIC ${OpenCV_INCLUDE_DIRS})      if(SDK_ARUCO_LIBPATH)          opentrack_library(opentrack-tracker-aruco ftnoir_tracker_aruco)          target_link_libraries(opentrack-tracker-aruco ${SDK_ARUCO_LIBPATH} ${OpenCV_LIBS}) +        target_include_directories(opentrack-tracker-aruco SYSTEM PUBLIC ${OpenCV_INCLUDE_DIRS})      endif()      target_link_libraries(opentrack-filter-kalman ${OpenCV_LIBS}) +    target_include_directories(opentrack-filter-kalman SYSTEM PUBLIC ${OpenCV_INCLUDE_DIRS})  endif()  link_with_dinput8(opentrack-tracker-ht) @@ -344,8 +339,6 @@ link_with_dinput8(opentrack-tracker-joystick)  link_with_dinput8(opentrack-tracker-pt)  if(SDK_RIFT) -    include_directories(${SDK_RIFT}/Include) -    include_directories(${SDK_RIFT}/Src)      set(link-flags)      set(c-flags)      if(APPLE) @@ -355,6 +348,7 @@ if(SDK_RIFT)          set(c-flags "-fno-strict-aliasing")      endif()      opentrack_library(opentrack-tracker-rift ftnoir_tracker_rift LINK ${link-flags} COMPILE ${c-flags}) +    target_include_directories(opentrack-tracker-rift SYSTEM PUBLIC ${SDK_RIFT}/Include ${SDK_RIFT}/Src)      if(WIN32)          target_link_libraries(opentrack-tracker-rift ${SDK_RIFT}/libLibOVR.a winmm setupapi ws2_32 imagehlp wbemuuid)      else() @@ -367,9 +361,8 @@ if(SDK_RIFT)  endif()  if(SDK_HYDRA) -    include_directories(${SDK_HYDRA}/include) -    include_directories(${SDK_HYDRA}/include/sixense_utils)      opentrack_library(opentrack-tracker-hydra ftnoir_tracker_hydra) +    target_include_directories(opentrack-tracker-hydra SYSTEM PUBLIC ${SDK_HYDRA}/include ${SDK_HYDRA}/include/sixense_utils)      if(WIN32)          target_link_libraries(opentrack-tracker-hydra              "${SDK_HYDRA}/lib/win32/release_dll/sixense.lib" | 
