pybind11/tests
Jason Rhinelander 1bee6e7df8 Overhaul LTO flag detection
Clang on linux currently fails to run cmake:

    $ CC=clang CXX=clang++ cmake ..
    ...
    -- Configuring done
    CMake Error at tools/pybind11Tools.cmake:135 (target_compile_options):
      Error evaluating generator expression:

        $<:-flto>

      Expression did not evaluate to a known generator expression
    Call Stack (most recent call first):
      tests/CMakeLists.txt:68 (pybind11_add_module)

But investigating this led to various other -flto detection problems;
this commit thus overhauls LTO flag detection:

- -flto needs to be passed to the linker as well
- Also compile with -fno-fat-lto-objects under GCC
- Pass the equivalent flags to MSVC
- Enable LTO flags for via generator expressions (for non-debug builds
  only), so that multi-config builds (like on Windows) still work
  properly.  This seems reasonable, however, even on single-config
  builds (and simplifies the cmake code a bit).
- clang's lto linker plugins don't accept '-Os', so replace it with
  '-O3' when doing a MINSIZEREL build
- Enable trying ThinLTO by default for test suite (only affects clang)
- Match Clang$ rather than ^Clang$ because, for cmake with 3.0+
  policies in effect, the compiler ID will be AppleClang on macOS.
2017-02-14 10:59:59 +01:00
..
test_cmake_build Rename target from pybind11::pybind11 to pybind11::module 2016-12-19 16:34:48 +01:00
CMakeLists.txt Overhaul LTO flag detection 2017-02-14 10:59:59 +01:00
conftest.py WIP: PyPy support (#527) 2016-12-16 15:00:46 +01:00
constructor_stats.h Minor fixes (#613) 2017-01-31 17:28:29 +01:00
object.h Improve custom holder support (#607) 2017-01-31 17:05:44 +01:00
pybind11_tests.cpp Add warning about binding multiple modules (#635) 2017-02-01 10:36:29 +01:00
pybind11_tests.h Replace std::cout with py::print in tests 2016-09-07 01:25:27 +02:00
test_alias_initialization.cpp Implement py::init_alias<>() constructors 2016-09-09 03:04:09 -04:00
test_alias_initialization.py WIP: PyPy support (#527) 2016-12-16 15:00:46 +01:00
test_buffers.cpp WIP: PyPy support (#527) 2016-12-16 15:00:46 +01:00
test_buffers.py WIP: PyPy support (#527) 2016-12-16 15:00:46 +01:00
test_callbacks.cpp Add py::dict() keyword constructor 2016-09-06 16:41:50 +02:00
test_callbacks.py nicer error message for invalid function arguments 2016-09-19 13:43:43 +02:00
test_chrono.cpp Changed non system clocks to be time deltas 2016-09-13 20:40:28 +10:00
test_chrono.py Add checks to maintain a consistent Python code style and prevent bugs (#515) 2016-11-20 21:21:54 +01:00
test_class_args.cpp Support std::shared_ptr holder type out of the box 2016-10-20 16:19:58 +02:00
test_class_args.py Set maximum line length for Python style checker (#552) 2016-12-13 00:59:28 +01:00
test_constants_and_functions.cpp Support binding noexcept function/methods in C++17 2016-12-14 20:40:49 +01:00
test_constants_and_functions.py Support binding noexcept function/methods in C++17 2016-12-14 20:40:49 +01:00
test_copy_move_policies.cpp equals needed for test_copy_move_policies to build icpc 2016.3 (#507) 2016-11-17 11:01:11 +01:00
test_copy_move_policies.py Add checks to maintain a consistent Python code style and prevent bugs (#515) 2016-11-20 21:21:54 +01:00
test_docstring_options.cpp Provide more control over automatic generation of docstrings (#486) 2016-11-15 12:38:05 +01:00
test_docstring_options.py Add checks to maintain a consistent Python code style and prevent bugs (#515) 2016-11-20 21:21:54 +01:00
test_eigen.cpp Adds automatic casting on assignment of non-pyobject types (#551) 2016-12-12 23:42:52 +01:00
test_eigen.py Set maximum line length for Python style checker (#552) 2016-12-13 00:59:28 +01:00
test_enum.cpp make arithmetic operators of enum_ optional (#508) 2016-11-17 23:24:47 +01:00
test_enum.py Add checks to maintain a consistent Python code style and prevent bugs (#515) 2016-11-20 21:21:54 +01:00
test_eval_call.py Add checks to maintain a consistent Python code style and prevent bugs (#515) 2016-11-20 21:21:54 +01:00
test_eval.cpp Make error_already_set fetch and hold the Python error 2016-09-10 12:08:32 +02:00
test_eval.py Rewrite eval tests to allow for simple asserts 2016-08-19 16:31:48 +02:00
test_exceptions.cpp Adds automatic casting on assignment of non-pyobject types (#551) 2016-12-12 23:42:52 +01:00
test_exceptions.py Add checks to maintain a consistent Python code style and prevent bugs (#515) 2016-11-20 21:21:54 +01:00
test_inheritance.cpp Add check for matching holder_type when inheriting (#588) 2017-01-31 16:52:11 +01:00
test_inheritance.py Add check for matching holder_type when inheriting (#588) 2017-01-31 16:52:11 +01:00
test_issues.cpp Fix debugging output for nameless py::arg_v annotations (#648) 2017-02-08 08:45:51 +01:00
test_issues.py WIP: PyPy support (#527) 2016-12-16 15:00:46 +01:00
test_keep_alive.cpp Replace std::cout with py::print in tests 2016-09-07 01:25:27 +02:00
test_keep_alive.py WIP: PyPy support (#527) 2016-12-16 15:00:46 +01:00
test_kwargs_and_defaults.cpp Add support for positional args with args/kwargs 2017-01-31 17:24:41 +01:00
test_kwargs_and_defaults.py Add support for positional args with args/kwargs 2017-01-31 17:24:41 +01:00
test_methods_and_attributes.cpp Fix debugging output for nameless py::arg_v annotations (#648) 2017-02-08 08:45:51 +01:00
test_methods_and_attributes.py Fix debugging output for nameless py::arg_v annotations (#648) 2017-02-08 08:45:51 +01:00
test_modules.cpp Make test initialization self-registering 2016-09-03 17:34:41 -04:00
test_modules.py Simplify tests by replacing output capture with asserts where possible 2016-08-19 13:19:38 +02:00
test_multiple_inheritance.cpp WIP: PyPy support (#527) 2016-12-16 15:00:46 +01:00
test_multiple_inheritance.py WIP: PyPy support (#527) 2016-12-16 15:00:46 +01:00
test_numpy_array.cpp Improve consistency of array and array_t with regard to other pytypes 2016-11-17 08:55:42 +01:00
test_numpy_array.py WIP: PyPy support (#527) 2016-12-16 15:00:46 +01:00
test_numpy_dtypes.cpp Numpy: better compilation errors, long double support (#619) 2017-01-31 17:00:15 +01:00
test_numpy_dtypes.py Numpy: better compilation errors, long double support (#619) 2017-01-31 17:00:15 +01:00
test_numpy_vectorize.cpp Replace std::cout with py::print in tests 2016-09-07 01:25:27 +02:00
test_numpy_vectorize.py Set maximum line length for Python style checker (#552) 2016-12-13 00:59:28 +01:00
test_opaque_types.cpp Make test initialization self-registering 2016-09-03 17:34:41 -04:00
test_opaque_types.py Prefer non-converting argument overloads 2017-02-03 20:47:17 -05:00
test_operator_overloading.cpp Make test initialization self-registering 2016-09-03 17:34:41 -04:00
test_operator_overloading.py WIP: PyPy support (#527) 2016-12-16 15:00:46 +01:00
test_pickling.cpp fix segfault in test suite due to typo (fixes #586) 2017-01-04 15:05:20 +01:00
test_pickling.py WIP: PyPy support (#527) 2016-12-16 15:00:46 +01:00
test_python_types.cpp WIP: PyPy support (#527) 2016-12-16 15:00:46 +01:00
test_python_types.py Fix segfault when repr() with pybind11 type with metaclass (#571) 2016-12-26 11:25:42 +01:00
test_sequences_and_iterators.cpp Fix test compilation failure under gcc 4.9 (#496) 2016-11-13 10:41:31 +09:00
test_sequences_and_iterators.py Add checks to maintain a consistent Python code style and prevent bugs (#515) 2016-11-20 21:21:54 +01:00
test_smart_ptr.cpp Improve custom holder support (#607) 2017-01-31 17:05:44 +01:00
test_smart_ptr.py Improve custom holder support (#607) 2017-01-31 17:05:44 +01:00
test_stl_binders.cpp Change all_of_t/any_of_t to all_of/any_of, add none_of 2016-12-14 20:42:36 +01:00
test_stl_binders.py Add checks to maintain a consistent Python code style and prevent bugs (#515) 2016-11-20 21:21:54 +01:00
test_virtual_functions.cpp Update OVERLOAD macros to support ref/ptr return type overloads 2016-09-11 01:21:53 -04:00
test_virtual_functions.py WIP: PyPy support (#527) 2016-12-16 15:00:46 +01:00