e4e5b28c27
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.
32 lines
832 B
Makefile
32 lines
832 B
Makefile
|
|
include cmakeExecutable.mk
|
|
|
|
CMAKE_CURRENT_BINARY_DIR = "@CMAKE_CURRENT_BINARY_DIR@"
|
|
CMAKE_CXX_COMPILER = "@CMAKE_CXX_COMPILER@"
|
|
CMAKE_CXX_COMPILER_ID = "@CMAKE_CXX_COMPILER_ID@"
|
|
|
|
CMAKE_FOO = $(CMAKE) --find-package -DCMAKE_MODULE_PATH=$(CMAKE_CURRENT_BINARY_DIR) -DNAME=Foo -DLANGUAGE=CXX -DCOMPILER_ID=$(CMAKE_CXX_COMPILER_ID)
|
|
|
|
tmp = tmp.txt
|
|
|
|
all: clean pngtest
|
|
|
|
main.o: main.cpp
|
|
@$(CMAKE_FOO) -DMODE=COMPILE >$(tmp)
|
|
@foo="`cat $(tmp)`"; \
|
|
printf '"%s" %s %s -c main.cpp\n' $(CMAKE_CXX_COMPILER) "$(CXXFLAGS)" "$$foo" >$(tmp)
|
|
@cat $(tmp)
|
|
@sh $(tmp)
|
|
@rm -f $(tmp)
|
|
|
|
pngtest: main.o
|
|
@$(CMAKE_FOO) -DMODE=LINK >$(tmp)
|
|
@foo="`cat $(tmp)`"; \
|
|
printf '"%s" %s %s -o pngtest main.o %s\n' $(CMAKE_CXX_COMPILER) "$(CXXFLAGS)" "$(LDFLAGS)" "$$foo" >$(tmp)
|
|
@cat $(tmp)
|
|
@sh $(tmp)
|
|
@rm -f $(tmp)
|
|
|
|
clean:
|
|
rm -f $(tmp) *.o pngtest
|