Fix build on MinGW (boost thread related).
authorUwe Hermann <uwe@hermann-uwe.de>
Fri, 21 Nov 2014 15:52:57 +0000 (16:52 +0100)
committerUwe Hermann <uwe@hermann-uwe.de>
Fri, 21 Nov 2014 15:52:57 +0000 (16:52 +0100)
Now that PulseView uses boost thread again, bring back the required
settings to make it all work on MinGW (and with static builds).

CMakeLists.txt
INSTALL
test/CMakeLists.txt

index 8e2ac69505984c9094cf2c98d54f2dd39962d1f9..136880e0d276eb1423fc2965f901a9a5fc4626f7 100644 (file)
@@ -44,6 +44,10 @@ if(WIN32)
        # This option is user configurable, but enable it by default on win32.
        set(STATIC_PKGDEPS_LIBS TRUE)
 
+       # For boost-thread we need two additional settings on win32:
+       set(Boost_USE_STATIC_LIBS ON)
+       add_definitions(-DBOOST_THREAD_USE_LIB)
+
        # Windows does not support UNIX signals.
        set(ENABLE_SIGNALS FALSE)
 endif()
@@ -91,7 +95,13 @@ else()
        find_package(Qt4 REQUIRED QtCore QtGui QtSvg)
 endif()
 
-find_package(Boost 1.42 COMPONENTS filesystem system thread REQUIRED)
+if(WIN32)
+       # On Windows/MinGW we need to use 'thread_win32' instead of 'thread'.
+       # The library is named libboost_thread_win32* (not libboost_thread*).
+       find_package(Boost 1.42 COMPONENTS filesystem system thread_win32 REQUIRED)
+else()
+       find_package(Boost 1.42 COMPONENTS filesystem system thread REQUIRED)
+endif()
 
 # Find the platform's thread library (needed for C++11 threads).
 # This will set ${CMAKE_THREAD_LIBS_INIT} to the correct, OS-specific value.
diff --git a/INSTALL b/INSTALL
index 5d0be6a290ee62681f32f903dc650d88b0ac17d5..18513ae6387643ad61e8603e485dbdb3e285b0ca 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -18,6 +18,7 @@ Requirements
  - libboost >= 1.42 (including the following libs):
     - libboost-system
     - libboost-filesystem
+    - libboost-thread
     - libboost-test (optional, only needed to run the unit tests)
  - libsigrokxx >= 0.3.0 (libsigrok C++ bindings)
  - libsigrokdecode >= 0.3.0
index 13bb6dd6aa1c14c56526204a0c3a657f7911b982..4bac48bb7e6adad769a0210533d18885e8527619 100644 (file)
@@ -29,7 +29,13 @@ endif()
 find_package(PkgConfig)
 pkg_check_modules(PKGDEPS REQUIRED ${PKGDEPS})
 
-find_package(Boost 1.42 COMPONENTS filesystem system unit_test_framework REQUIRED)
+if(WIN32)
+       # On Windows/MinGW we need to use 'thread_win32' instead of 'thread'.
+       # The library is named libboost_thread_win32* (not libboost_thread*).
+       find_package(Boost 1.42 COMPONENTS filesystem system thread_win32 unit_test_framework REQUIRED)
+else()
+       find_package(Boost 1.42 COMPONENTS filesystem system thread unit_test_framework REQUIRED)
+endif()
 
 # Find the platform's thread library (needed for C++11 threads).
 # This will set ${CMAKE_THREAD_LIBS_INIT} to the correct, OS-specific value.