Commit Graph

25 Commits

Author SHA1 Message Date
Brad King
fd714dd2b8 Tests: Fix FindPackageModeMakefileTest with CMAKE_OSX_ARCHITECTURES 2021-03-03 10:29:53 -08:00
Brad King
42edf53ce2 Tests: Generalize FindPackageModeMakefileTest extra flags var 2021-03-03 10:29:35 -08:00
Gregor Jasny
447ecbb692 Apple: also specify sysroot for linking
Otherwise the compiler/linker will default to the wrong C++ runtime
library.
2020-07-17 15:46:29 +02:00
Craig Scott
c37f4eff5e FindPackageModeMakefileTest: macOS needs isysroot flag
macOS/Xcode no longer populate /usr/include.
Building with the compiler directly instead of using /usr/bin/c++
can result in missing headers without the -isysroot flag.

Relates: #19885
2019-10-29 07:14:08 +11:00
Chuck Atkins
03f22cd188 FindPackageModeMakefileTest: Explicitly use C linkage
This explicitly uses C linkage for the library code used by the test to work
around some compilers (Solaris Studio 12.4) that implicitly assume incorrect
linkage information.  Since something else entirely is being tested here,
this allows the test to proceed as needed on the affected platforms.
2018-08-29 13:02:09 -04:00
Brad King
18454ea44d cmake: Fix --find-package mode with imported targets
The change in commit v3.9.0-rc1~116^2~6 (cmakemain: use script role for
-P, 2017-05-11) accidentally left project commands out of find-package
mode, causing packages that provide imported targets to break.

Fixes: #17124
2017-08-29 15:30:07 -04:00
Stephen Kelly
fbc1b75c26 Test: Remove condition for CMake version no longer supported 2016-10-10 10:09:54 -04:00
Kitware Robot
d9fd2f5402 Revise C++ coding style using clang-format
Run the `Utilities/Scripts/clang-format.bash` script to update
all our C++ code to a new style defined by `.clang-format`.
Use `clang-format` version 3.8.

* If you reached this commit for a line in `git blame`, re-run the blame
  operation starting at the parent of this commit to see older history
  for the content.

* See the parent commit for instructions to rebase a change across this
  style transition commit.
2016-05-16 16:05:19 -04:00
Brad King
e1c7747253 Format include directive blocks and ordering with clang-format
Sort include directives within each block (separated by a blank line) in
lexicographic order (except to prioritize `sys/types.h` first).  First
run `clang-format` with the config file:

    ---
    SortIncludes: false
    ...

Commit the result temporarily.  Then run `clang-format` again with:

    ---
    SortIncludes: true
    IncludeCategories:
      - Regex:    'sys/types.h'
        Priority: -1
    ...

Commit the result temporarily.  Start a new branch and cherry-pick the
second commit.  Manually resolve conflicts to preserve indentation of
re-ordered includes.  This cleans up the include ordering without
changing any other style.

Use the following command to run `clang-format`:

    $ git ls-files -z -- \
        '*.c' '*.cc' '*.cpp' '*.cxx' '*.h' '*.hh' '*.hpp' '*.hxx' |
      egrep -z -v '(Lexer|Parser|ParserHelper)\.' |
      egrep -z -v '^Source/cm_sha2' |
      egrep -z -v '^Source/(kwsys|CursesDialog/form)/' |
      egrep -z -v '^Utilities/(KW|cm).*/' |
      egrep -z -v '^Tests/Module/GenerateExportHeader' |
      egrep -z -v '^Tests/RunCMake/CommandLine/cmake_depends/test_UTF-16LE.h' |
      xargs -0 clang-format -i

This selects source files that do not come from a third-party.

Inspired-by: Daniel Pfeifer <daniel@pfeifer-mail.de>
2016-04-29 13:58:54 -04:00
Brad King
c05678ad28 Tests: Add option to disable FindPackageModeMakefileTest
This test does not work in all environments, so add an option to
disable it.
2016-02-19 09:10:44 -05:00
Brad King
85d7a610a2 Tests: Use consistent C++ flags FindPackageModeMakefileTest
Rather than using the CXXFLAGS environment variable in the make-only
build, copy the CMAKE_CXX_FLAGS used to build the files on the CMake
side.  This will account for any changes made by CompileFlags.cmake
or cache-provided flags.
2015-10-01 10:26:55 -04:00
Rolf Eike Beer
b0b4b4602f Remove .* expressions from beginning and end of MATCHES regexs
All these expressions work the same:
  "foo"
  ".*foo.*"
  "^.*foo.*$"

This assumes that the "Intel*" expressions were meant to be "Intel.*".
2014-04-14 18:17:11 +02:00
Stephen Kelly
dea71aae6d Tests: Fix find-package mode test.
The all target was depending on the clean and pngtest targets, but
when running the tests with -jN, those can be executed out of order.

Make the main.o target depend on the clean target instead to fix
this.
2014-01-11 13:58:23 +01:00
Stephen Kelly
e4e5b28c27 cmTarget: Deprecate the LOCATION target property with a policy.
The final location and name of a build-target is not determined
until generate-time. However, reading the LOCATION property from
a target is currently allowed at configure time. Apart from creating
possibly-erroneous results, this has an impact on the implementation
of cmake itself, and prevents some major cleanups from being made.

Disallow reading LOCATION from build-targets with a policy. Port some
existing uses of it in CMake itself to use the TARGET_FILE generator
expression.
2013-10-11 21:17:27 +02:00
Daniel R. Gomez
09ff191c3f Fix FindPackageMode test Makefile (#13314)
Use CXXFLAGS in the makefile's link rule since it invokes the C++
compiler front-end.  Retool the makefile not to require GNU Make.  Using
backticks instead of $(shell ...) is safe so long as one guards against
the possibility of backslashes getting inside the backticks, so use
temporary files and shell variables to avoid them.
2012-06-19 08:26:01 -04:00
Alex Neundorf
0d44ce2bf4 Silence make on OpenBSD in FindPackageModeTest(#12508)
BSD make doesn't use -v for printing its name and version, and so
complains on stderr that this is a bad command line option, used
in Tests/FindPackageModeMakefileTest/CMakeLists.txt .
Silence stderr to make that ugly output go away.
Patch by David Coppy.

Alex
2011-10-12 22:20:18 +02:00
Alex Neundorf
a6ccf3cb65 Use $(CXXFLAGS) and $(LDFLAGS) in the --find-package test Makefile
This should make the test succeed in the coverage builds, where CXXFLAGS
and LDFLAGS are set accordingly.

Alex
2011-08-18 18:43:33 +02:00
Alex Neundorf
7d693108fa Only enable the test when using GNU make
The makefile used in the test uses $(shell ...), which is
AFAIK a GNU extension, and will probably not work e.g. with OpenBSD make.
According to the FreeBSD make manpage their make has a != assignment,
which seems to do something similar, but I don't have such a system
around for testing.
Also, the point of this test is not to write a portable makefile,
but to check whether cmake --find-package prints a correct string.

Alex
2011-08-17 23:44:34 +02:00
Alex Neundorf
3011149947 Make the test harder by always having a space in the include dirs
The commit message for the previous commit was wrong, it should
have been: fix the test by using $(shell ...) syntax instead
of backticks in the Makefile.
With backticks I couldn't get the quoting right.
Printing -I"/some/path with space" did not work, the compiler
complained that there is not file "with". Also backslashes in
different numbers did not make it work.

Alex
2011-08-17 22:53:35 +02:00
Alex Neundorf
ab57ff6156 Make the --find-package test harder
Now it is guaranteed that the include paths always contain a space.
This should make the cont. build fail.

Alex
2011-08-17 22:51:57 +02:00
Alex Neundorf
626fc717c6 Much improved test, should now be executed on all UNIXes
Instead of relying on that some development package is installed on the
system, now a tiny library is built, which is the searched and used
during the test.

Alex
2011-08-16 22:31:26 +02:00
Alex Neundorf
aecfc1fd10 Fix test on OpenBSD with BSD make
BSD make doesn't seem to support -C, so do not use it,
According to the documentation the working directory is set
to CMAKE_CURRENT_BINARY_DIR anyway, so it should work just the same.

Alex
2011-08-16 00:08:43 +02:00
Alex Neundorf
6bb4ca3802 The makefile for the test was kindof wrong
Alex
2011-08-14 15:38:24 +02:00
Alex Neundorf
fd15b5e1c4 Only run the test if we are using a makefile generator under UNIX
Alex
2011-08-11 23:34:25 +02:00
Alex Neundorf
9fc87c6343 Add a test for the new --find-package mode
Alex
2011-08-11 23:34:17 +02:00