1. 25 Sep, 2019 1 commit
    • Richard Musil's avatar
      Making CUDA test work with CMAKE_MSVC_RUNTIME_LIBRARY · 3b2fc033
      Richard Musil authored
      CMake 3.15 introduced a new way of handling MSVC CRT type definition for
      the build: CMAKE_MSVC_RUNTIME_LIBRARY variable.
      (https://cmake.org/cmake/help/latest/variable/CMAKE_MSVC_RUNTIME_LIBRARY.html)
      
      This is supposed to be the way to go with MSVC CRT selection in new
      projects. Using this method however breaks the current CMake script for
      CUDA test. The reason is the CUDA test uses "FindCUDA" CMake module to
      detect and set up CUDA support in CMake, which is deprecated since CMake
      version 3.10, and which does not support CMAKE_MSVC_RUNTIME_LIBRARY
      selector correctly (i.e. it does not propagate the compiler option
      related to the CRT).
      
      I did not find a way to "patch" in the correct compiler options, so
      (while knowing this feature is only available from CMake 3.15 on) I
      decided to change also the way CUDA is handled and instead of using
      FindCUDA, used enable_language. Apart from having some nice additional
      side-effects, it also fixed the problem with CRT selection.
      
      However, the propagation of the compiler options (and in particular the
      options related to C++ standard selection) is still a bit flaky on
      Windows+MSVC platform, so it had to be done manually.
      
      The patch makes two things in parallel:
      
      1) Introduces MSVC_BUILD_STATIC, which, together with CMake version >=
      3.15, allows building static version of the 'fmt' lib (and all the
      tests).
      
      2) At the same time, for CMake >= 3.15 it switches handling of CUDA
      support from (old) FindCUDA to (new) enable_language, to fix the
      problems which the old method has with the new CRT selector for MSVC in
      a new CMake.
      
      Added a check for CUDA before enabling it.
      
      Using VERSION_LESS instead of VERSION_GREATER_EQUAL
      
      Since apparently VERSION_GREATER_EQUAL exists only from CMake 3.7, while
      Android is using CMake 3.6.
      
      Removed MSVC_RUNTIME_LIBRARY logic from the CMake file.
      
      The static build can be set on the command line with CMake >= 3.15
      by defining the policy and the CMAKE_MSVC_RUNTIME_LIBARY this way:
      
      cmake -G <gen> <options>
          -DCMAKE_POLICY_DEFAULT_CMP0091=NEW
          -DMSVC_BUILD_STATIC=ON
          -DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreaded$<$<CONFIG:Debug>:Debug>"
      
      When MSVC_BUILD_DEBUG is set the test 'posix-mock-test' is skipped as it
      does not build with the static runtime.
      3b2fc033
  2. 24 Sep, 2019 5 commits
  3. 23 Sep, 2019 2 commits
  4. 19 Sep, 2019 3 commits
  5. 17 Sep, 2019 1 commit
    • Rosen Penev's avatar
      fmt.pc.in: Fix for cross compilation · 79c923ba
      Rosen Penev authored
      These variables get set to /usr/lib and /usr/include , which is totally wrong in a cross compilation
      environment.
      
      Changed to standard pkgconfig values consistent with most other ones.
      79c923ba
  6. 13 Sep, 2019 1 commit
  7. 10 Sep, 2019 1 commit
  8. 09 Sep, 2019 1 commit
  9. 08 Sep, 2019 4 commits
  10. 07 Sep, 2019 4 commits
  11. 06 Sep, 2019 8 commits
  12. 04 Sep, 2019 3 commits
  13. 03 Sep, 2019 2 commits
  14. 02 Sep, 2019 1 commit
  15. 01 Sep, 2019 3 commits