mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-07 01:36:01 +02:00
Bug 577263: CommandGenerator not respected for option value type libs
Contributed by STMicroelectronics Change-Id: I2c332eb40b6b69aff405c2c7c86cdcd4acaf5d19 Signed-off-by: Torbjörn Svensson <torbjorn.svensson@st.com> Also-By: Erik Hentschke <erik.hentschke@bachmann.info> Also-By: John Dallaway <john@dallaway.org.uk>
This commit is contained in:
parent
d224fec1da
commit
2a669100f0
47 changed files with 309 additions and 245 deletions
|
@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||||
Bundle-ManifestVersion: 2
|
Bundle-ManifestVersion: 2
|
||||||
Bundle-Name: %pluginName
|
Bundle-Name: %pluginName
|
||||||
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.core.tests; singleton:=true
|
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.core.tests; singleton:=true
|
||||||
Bundle-Version: 8.2.100.qualifier
|
Bundle-Version: 8.2.200.qualifier
|
||||||
Bundle-Activator: org.eclipse.cdt.managedbuilder.testplugin.CTestPlugin
|
Bundle-Activator: org.eclipse.cdt.managedbuilder.testplugin.CTestPlugin
|
||||||
Bundle-Vendor: %providerName
|
Bundle-Vendor: %providerName
|
||||||
Bundle-Localization: plugin
|
Bundle-Localization: plugin
|
||||||
|
|
|
@ -11,7 +11,6 @@ RM := rm
|
||||||
-include Sources/sub\ sources/subdir.mk
|
-include Sources/sub\ sources/subdir.mk
|
||||||
-include Sources/subdir.mk
|
-include Sources/subdir.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -41,7 +40,7 @@ all: main-build
|
||||||
main-build: test1DepCalc2
|
main-build: test1DepCalc2
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
test1DepCalc2: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
test1DepCalc2: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: GCC C Linker'
|
@echo 'Invoking: GCC C Linker'
|
||||||
gcc -o "test1DepCalc2" $(OBJS) $(USER_OBJS) $(LIBS)
|
gcc -o "test1DepCalc2" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -11,7 +11,6 @@ RM := rm
|
||||||
-include Sources/sub\ sources/subdir.mk
|
-include Sources/sub\ sources/subdir.mk
|
||||||
-include Sources/subdir.mk
|
-include Sources/subdir.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -41,7 +40,7 @@ all: main-build
|
||||||
main-build: test1DepCalc3
|
main-build: test1DepCalc3
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
test1DepCalc3: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
test1DepCalc3: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: GCC C Linker'
|
@echo 'Invoking: GCC C Linker'
|
||||||
gcc -o "test1DepCalc3" $(OBJS) $(USER_OBJS) $(LIBS)
|
gcc -o "test1DepCalc3" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -11,7 +11,6 @@ RM := rm
|
||||||
-include Sources/sub\ sources/subdir.mk
|
-include Sources/sub\ sources/subdir.mk
|
||||||
-include Sources/subdir.mk
|
-include Sources/subdir.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -41,7 +40,7 @@ all: main-build
|
||||||
main-build: test1DepCalcPreBuild
|
main-build: test1DepCalcPreBuild
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
test1DepCalcPreBuild: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
test1DepCalcPreBuild: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: GCC C Linker'
|
@echo 'Invoking: GCC C Linker'
|
||||||
gcc -o "test1DepCalcPreBuild" $(OBJS) $(USER_OBJS) $(LIBS)
|
gcc -o "test1DepCalcPreBuild" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C++_DEPS)),)
|
ifneq ($(strip $(C++_DEPS)),)
|
||||||
|
@ -54,7 +53,7 @@ all: main-build
|
||||||
main-build: test12.exe
|
main-build: test12.exe
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
test12.exe: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
test12.exe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: Cygwin C++ Linker'
|
@echo 'Invoking: Cygwin C++ Linker'
|
||||||
g++ -o "test12.exe" $(OBJS) $(USER_OBJS) $(LIBS)
|
g++ -o "test12.exe" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C++_DEPS)),)
|
ifneq ($(strip $(C++_DEPS)),)
|
||||||
|
@ -54,7 +53,7 @@ all: main-build
|
||||||
main-build: test20.exe
|
main-build: test20.exe
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
test20.exe: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
test20.exe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: Cygwin C++ Linker'
|
@echo 'Invoking: Cygwin C++ Linker'
|
||||||
g++ -o "test20.exe" $(OBJS) $(USER_OBJS) $(LIBS)
|
g++ -o "test20.exe" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -10,7 +10,6 @@ RM := rm -rf
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include Functions/subdir.mk
|
-include Functions/subdir.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -40,7 +39,7 @@ all: main-build
|
||||||
main-build: MBS2dot1.exe
|
main-build: MBS2dot1.exe
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
MBS2dot1.exe: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
MBS2dot1.exe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: GCC C Linker'
|
@echo 'Invoking: GCC C Linker'
|
||||||
gcc -o "MBS2dot1.exe" $(OBJS) $(USER_OBJS) $(LIBS)
|
gcc -o "MBS2dot1.exe" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -10,7 +10,6 @@ RM := rm -rf
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include Functions/subdir.mk
|
-include Functions/subdir.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C++_DEPS)),)
|
ifneq ($(strip $(C++_DEPS)),)
|
||||||
|
@ -55,7 +54,7 @@ all: main-build
|
||||||
main-build: Test21CXX
|
main-build: Test21CXX
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
Test21CXX: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
Test21CXX: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: GCC C++ Linker'
|
@echo 'Invoking: GCC C++ Linker'
|
||||||
g++ -o "Test21CXX" $(OBJS) $(USER_OBJS) $(LIBS)
|
g++ -o "Test21CXX" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -39,7 +38,7 @@ all: main-build
|
||||||
main-build: liblinkedFolder.a
|
main-build: liblinkedFolder.a
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
liblinkedFolder.a: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
liblinkedFolder.a: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: archiver.gnu'
|
@echo 'Invoking: archiver.gnu'
|
||||||
ar -r "liblinkedFolder.a" $(OBJS) $(USER_OBJS) $(LIBS)
|
ar -r "liblinkedFolder.a" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -39,7 +38,7 @@ all: main-build
|
||||||
main-build: liblinkedLib.a
|
main-build: liblinkedLib.a
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
liblinkedLib.a: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
liblinkedLib.a: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: archiver.gnu'
|
@echo 'Invoking: archiver.gnu'
|
||||||
ar -r "liblinkedLib.a" $(OBJS) $(USER_OBJS) $(LIBS)
|
ar -r "liblinkedLib.a" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -12,7 +12,6 @@ RM := rm -rf
|
||||||
-include source2/subdir.mk
|
-include source2/subdir.mk
|
||||||
-include source1/subdir.mk
|
-include source1/subdir.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(CC_DEPS)),)
|
ifneq ($(strip $(CC_DEPS)),)
|
||||||
|
@ -54,7 +53,7 @@ all: main-build
|
||||||
main-build: testResCfg
|
main-build: testResCfg
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
testResCfg: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
testResCfg: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: linker.gnu.cpp'
|
@echo 'Invoking: linker.gnu.cpp'
|
||||||
g++ --strip-all -o "testResCfg" $(OBJS) $(USER_OBJS) $(LIBS)
|
g++ --strip-all -o "testResCfg" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -39,7 +38,7 @@ all: main-build
|
||||||
main-build: testSingleExe
|
main-build: testSingleExe
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
testSingleExe: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
testSingleExe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: linker.gnu.c'
|
@echo 'Invoking: linker.gnu.c'
|
||||||
gcc -o "testSingleExe" $(OBJS) $(USER_OBJS) $(LIBS)
|
gcc -o "testSingleExe" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(CC_DEPS)),)
|
ifneq ($(strip $(CC_DEPS)),)
|
||||||
|
@ -51,7 +50,7 @@ all: main-build
|
||||||
main-build: libtestDoubleSO.so
|
main-build: libtestDoubleSO.so
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
libtestDoubleSO.so: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
libtestDoubleSO.so: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: linker.gnu.cpp'
|
@echo 'Invoking: linker.gnu.cpp'
|
||||||
g++ -shared -o "libtestDoubleSO.so" $(OBJS) $(USER_OBJS) $(LIBS)
|
g++ -shared -o "libtestDoubleSO.so" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
-include ../makefile.defs
|
-include ../makefile.defs
|
||||||
|
|
||||||
|
@ -33,7 +32,7 @@ all: main-build
|
||||||
main-build: CDTFortranTest1.exe
|
main-build: CDTFortranTest1.exe
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
CDTFortranTest1.exe: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
CDTFortranTest1.exe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: Linker'
|
@echo 'Invoking: Linker'
|
||||||
mylink -o "CDTFortranTest1.exe" $(OBJS) $(USER_OBJS) $(LIBS)
|
mylink -o "CDTFortranTest1.exe" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -10,7 +10,6 @@ RM := rm -rf
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include module/subdir.mk
|
-include module/subdir.mk
|
||||||
-include Sources/subdir.mk
|
-include Sources/subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
-include ../makefile.defs
|
-include ../makefile.defs
|
||||||
|
|
||||||
|
@ -34,7 +33,7 @@ all: main-build
|
||||||
main-build: CDTFortranTest2
|
main-build: CDTFortranTest2
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
CDTFortranTest2: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
CDTFortranTest2: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: Linker'
|
@echo 'Invoking: Linker'
|
||||||
mylink -o "CDTFortranTest2" $(OBJS) $(USER_OBJS) $(LIBS)
|
mylink -o "CDTFortranTest2" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
-include ../makefile.defs
|
-include ../makefile.defs
|
||||||
|
|
||||||
|
@ -33,7 +32,7 @@ all: main-build
|
||||||
main-build: TestATO.out
|
main-build: TestATO.out
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
TestATO.out: $(OBJS) $(OPT_SRCS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
TestATO.out: $(OBJS) $(OPT_SRCS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: AssignToOption Executable Linker'
|
@echo 'Invoking: AssignToOption Executable Linker'
|
||||||
ATOL -opt../TestATO1.opt -opt../TestATO2.opt -o "TestATO.out" $(OBJS)
|
ATOL -opt../TestATO1.opt -opt../TestATO2.opt -o "TestATO.out" $(OBJS)
|
||||||
|
|
|
@ -10,7 +10,6 @@ RM := rm -rf
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include Functions/subdir.mk
|
-include Functions/subdir.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -43,14 +42,14 @@ all: main-build
|
||||||
main-build: TestCopyandDeploy
|
main-build: TestCopyandDeploy
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
TestCopyandDeploy: $(EXECUTABLES) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
TestCopyandDeploy: $(EXECUTABLES) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: Deploy tool'
|
@echo 'Invoking: Deploy tool'
|
||||||
cp $(EXECUTABLES) "TestCopyandDeploy"
|
cp $(EXECUTABLES) "TestCopyandDeploy"
|
||||||
@echo 'Finished building target: $@'
|
@echo 'Finished building target: $@'
|
||||||
@echo ' '
|
@echo ' '
|
||||||
|
|
||||||
USER_OBJS.foo: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
USER_OBJS.foo: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Invoking: MBS30.linker.gnu.c'
|
@echo 'Invoking: MBS30.linker.gnu.c'
|
||||||
gcc -o "USER_OBJS.foo" $(OBJS) $(USER_OBJS) $(LIBS)
|
gcc -o "USER_OBJS.foo" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
@echo 'Finished building: $@'
|
@echo 'Finished building: $@'
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(CC_DEPS)),)
|
ifneq ($(strip $(CC_DEPS)),)
|
||||||
|
@ -51,7 +50,7 @@ all: main-build
|
||||||
main-build: DeleteFile
|
main-build: DeleteFile
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
DeleteFile: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
DeleteFile: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: MBS30.linker.gnu.cpp'
|
@echo 'Invoking: MBS30.linker.gnu.cpp'
|
||||||
g++ -o "DeleteFile" $(OBJS) $(USER_OBJS) $(LIBS)
|
g++ -o "DeleteFile" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -39,7 +38,7 @@ all: main-build
|
||||||
main-build: inputTypeOption
|
main-build: inputTypeOption
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
inputTypeOption: $(OBJS) C:\An\ Absolute\ Path\ With\ Spaces\foo.linker $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
inputTypeOption: $(OBJS) C:\An\ Absolute\ Path\ With\ Spaces\foo.linker $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: org.eclipse.cdt.managedbuilder.core.tests.inputTypeOptionMakefileRenderingTest.c.linker'
|
@echo 'Invoking: org.eclipse.cdt.managedbuilder.core.tests.inputTypeOptionMakefileRenderingTest.c.linker'
|
||||||
gcc --linkerInputTypeOption="C:\An Absolute Path With Spaces\foo.linker" -o "inputTypeOption" $(OBJS) $(USER_OBJS) $(LIBS)
|
gcc --linkerInputTypeOption="C:\An Absolute Path With Spaces\foo.linker" -o "inputTypeOption" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -39,7 +38,7 @@ all: main-build
|
||||||
main-build: liblinkedFolder.a
|
main-build: liblinkedFolder.a
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
liblinkedFolder.a: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
liblinkedFolder.a: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: MBS30.archiver.gnu'
|
@echo 'Invoking: MBS30.archiver.gnu'
|
||||||
ar -r "liblinkedFolder.a" $(OBJS) $(USER_OBJS) $(LIBS)
|
ar -r "liblinkedFolder.a" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -39,7 +38,7 @@ all: main-build
|
||||||
main-build: liblinkedLib.a
|
main-build: liblinkedLib.a
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
liblinkedLib.a: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
liblinkedLib.a: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: MBS30.archiver.gnu'
|
@echo 'Invoking: MBS30.archiver.gnu'
|
||||||
ar -r "liblinkedLib.a" $(OBJS) $(USER_OBJS) $(LIBS)
|
ar -r "liblinkedLib.a" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -12,7 +12,6 @@ RM := rm -rf
|
||||||
-include source2/subdir.mk
|
-include source2/subdir.mk
|
||||||
-include source1/subdir.mk
|
-include source1/subdir.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(CC_DEPS)),)
|
ifneq ($(strip $(CC_DEPS)),)
|
||||||
|
@ -54,7 +53,7 @@ all: main-build
|
||||||
main-build: multiResConfig
|
main-build: multiResConfig
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
multiResConfig: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
multiResConfig: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: MBS30.linker.gnu.cpp'
|
@echo 'Invoking: MBS30.linker.gnu.cpp'
|
||||||
g++ -o "multiResConfig" $(OBJS) $(USER_OBJS) $(LIBS)
|
g++ -o "multiResConfig" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(CC_DEPS)),)
|
ifneq ($(strip $(CC_DEPS)),)
|
||||||
|
@ -52,7 +51,7 @@ all:
|
||||||
main-build: preAndPostBuildSteps
|
main-build: preAndPostBuildSteps
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
preAndPostBuildSteps: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
preAndPostBuildSteps: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: MBS30.linker.gnu.cpp'
|
@echo 'Invoking: MBS30.linker.gnu.cpp'
|
||||||
g++ -o "preAndPostBuildSteps" $(OBJS) $(USER_OBJS) $(LIBS)
|
g++ -o "preAndPostBuildSteps" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -39,7 +38,7 @@ all: main-build
|
||||||
main-build: rcbsBasicTest
|
main-build: rcbsBasicTest
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
rcbsBasicTest: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
rcbsBasicTest: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: MBS30.linker.gnu.c'
|
@echo 'Invoking: MBS30.linker.gnu.c'
|
||||||
gcc -o "rcbsBasicTest" $(OBJS) $(USER_OBJS) $(LIBS)
|
gcc -o "rcbsBasicTest" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -39,7 +38,7 @@ all: main-build
|
||||||
main-build: singleFileExe
|
main-build: singleFileExe
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
singleFileExe: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
singleFileExe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: MBS30.linker.gnu.c'
|
@echo 'Invoking: MBS30.linker.gnu.c'
|
||||||
gcc -o "singleFileExe" $(OBJS) $(USER_OBJS) $(LIBS)
|
gcc -o "singleFileExe" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -10,7 +10,6 @@ RM := rm -rf
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include sub\ folder\ with\ spaces/subdir.mk
|
-include sub\ folder\ with\ spaces/subdir.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -40,7 +39,7 @@ all: main-build
|
||||||
main-build: testwithspaces.exe
|
main-build: testwithspaces.exe
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
testwithspaces.exe: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
testwithspaces.exe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: GCC C Linker'
|
@echo 'Invoking: GCC C Linker'
|
||||||
gcc -o "testwithspaces.exe" $(OBJS) $(USER_OBJS) $(LIBS)
|
gcc -o "testwithspaces.exe" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -45,7 +44,7 @@ all: main-build
|
||||||
main-build: Test30_1.so.4.5.6 secondary-outputs
|
main-build: Test30_1.so.4.5.6 secondary-outputs
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
Test30_1.so.4.5.6: $(EXECUTABLES) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
Test30_1.so.4.5.6: $(EXECUTABLES) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: Deploy tool'
|
@echo 'Invoking: Deploy tool'
|
||||||
cp $(EXECUTABLES) "Test30_1.so.4.5.6"
|
cp $(EXECUTABLES) "Test30_1.so.4.5.6"
|
||||||
|
@ -54,7 +53,7 @@ Test30_1.so.4.5.6: $(EXECUTABLES) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
||||||
|
|
||||||
default.so.4.5.6: Test30_1.so.4.5.6 $(EXECUTABLES)
|
default.so.4.5.6: Test30_1.so.4.5.6 $(EXECUTABLES)
|
||||||
|
|
||||||
test30_1.so.1.2.3: $(STRIPPEDOBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
test30_1.so.1.2.3: $(STRIPPEDOBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Invoking: MBS30.linker.gnu.c'
|
@echo 'Invoking: MBS30.linker.gnu.c'
|
||||||
gcc -shared -Wl,-soname=test30_1.so.1.2.3 -o "test30_1.so.1.2.3" $(STRIPPEDOBJS)
|
gcc -shared -Wl,-soname=test30_1.so.1.2.3 -o "test30_1.so.1.2.3" $(STRIPPEDOBJS)
|
||||||
@echo 'Finished building: $@'
|
@echo 'Finished building: $@'
|
||||||
|
|
|
@ -10,7 +10,6 @@ RM := rm -rf
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include ABC/subdir.mk
|
-include ABC/subdir.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
-include ../makefile.defs
|
-include ../makefile.defs
|
||||||
|
|
||||||
|
@ -49,26 +48,26 @@ all: main-build
|
||||||
main-build: test30_2.tmp
|
main-build: test30_2.tmp
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
test30_2.tmp: $(LOGFILE) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
test30_2.tmp: $(LOGFILE) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: cat'
|
@echo 'Invoking: cat'
|
||||||
cat $(LOGFILE)
|
cat $(LOGFILE)
|
||||||
@echo 'Finished building target: $@'
|
@echo 'Finished building target: $@'
|
||||||
@echo ' '
|
@echo ' '
|
||||||
|
|
||||||
new.tar: $(CPP_SRCS) $(ASM_SRCS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
new.tar: $(CPP_SRCS) $(ASM_SRCS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Invoking: tar-create'
|
@echo 'Invoking: tar-create'
|
||||||
tar -cf new.tar $(CPP_SRCS) $(ASM_SRCS)
|
tar -cf new.tar $(CPP_SRCS) $(ASM_SRCS)
|
||||||
@echo 'Finished building: $@'
|
@echo 'Finished building: $@'
|
||||||
@echo ' '
|
@echo ' '
|
||||||
|
|
||||||
new.log: $(TAROUT) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
new.log: $(TAROUT) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Invoking: tar-list'
|
@echo 'Invoking: tar-list'
|
||||||
tar -tf $(TAROUT) > new.log
|
tar -tf $(TAROUT) > new.log
|
||||||
@echo 'Finished building: $@'
|
@echo 'Finished building: $@'
|
||||||
@echo ' '
|
@echo ' '
|
||||||
|
|
||||||
these file\ names are not in alphabetical order: $(LOGFILE) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
these file\ names are not in alphabetical order: $(LOGFILE) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Invoking: touch'
|
@echo 'Invoking: touch'
|
||||||
touch -r $(LOGFILE) "these" "file names" "are" "not" "in" "alphabetical" "order"
|
touch -r $(LOGFILE) "these" "file names" "are" "not" "in" "alphabetical" "order"
|
||||||
@echo 'Finished building: $@'
|
@echo 'Finished building: $@'
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -39,7 +38,7 @@ all: main-build
|
||||||
main-build: test.exe
|
main-build: test.exe
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
test.exe: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
test.exe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: GCC C Linker'
|
@echo 'Invoking: GCC C Linker'
|
||||||
gcc -o "test.exe" $(OBJS) $(USER_OBJS) $(LIBS)
|
gcc -o "test.exe" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
-include ../makefile.defs
|
-include ../makefile.defs
|
||||||
|
|
||||||
|
@ -33,7 +32,7 @@ all: main-build
|
||||||
main-build: testMacroSupportInBuildDefinitions.tar
|
main-build: testMacroSupportInBuildDefinitions.tar
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
testMacroSupportInBuildDefinitions.tar: $(BAR_FILES) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
testMacroSupportInBuildDefinitions.tar: $(BAR_FILES) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: Bar Tool'
|
@echo 'Invoking: Bar Tool'
|
||||||
tar cvf $@ $(BAR_FILES)
|
tar cvf $@ $(BAR_FILES)
|
||||||
|
|
|
@ -9,7 +9,6 @@ RM := rm -rf
|
||||||
# All of the sources participating in the build are defined here
|
# All of the sources participating in the build are defined here
|
||||||
-include sources.mk
|
-include sources.mk
|
||||||
-include subdir.mk
|
-include subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C_DEPS)),)
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
@ -39,7 +38,7 @@ all: main-build
|
||||||
main-build: libtwoFileSO.SOS
|
main-build: libtwoFileSO.SOS
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
libtwoFileSO.SOS: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
libtwoFileSO.SOS: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: MBS30.linker.gnu.c'
|
@echo 'Invoking: MBS30.linker.gnu.c'
|
||||||
gcc -shared -o "libtwoFileSO.SOS" $(OBJS) $(USER_OBJS) $(LIBS)
|
gcc -shared -o "libtwoFileSO.SOS" $(OBJS) $(USER_OBJS) $(LIBS)
|
||||||
|
|
|
@ -16,7 +16,6 @@ RM := rm -rf
|
||||||
-include d1/d2/d3/subdir.mk
|
-include d1/d2/d3/subdir.mk
|
||||||
-include d1/d2/subdir.mk
|
-include d1/d2/subdir.mk
|
||||||
-include d1/subdir.mk
|
-include d1/subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C++_DEPS)),)
|
ifneq ($(strip $(C++_DEPS)),)
|
||||||
|
@ -61,10 +60,10 @@ all: main-build
|
||||||
main-build: test_40
|
main-build: test_40
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
test_40: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
test_40: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS) uo1
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: Test 4.0 ToolName.linker.gnu.cpp'
|
@echo 'Invoking: Test 4.0 ToolName.linker.gnu.cpp'
|
||||||
g++ -Llib/path/1 -o "test_40" $(OBJS) $(USER_OBJS) $(LIBS)
|
g++ -Llib/path/1 -o "test_40" $(OBJS) $(USER_OBJS) $(LIBS) uo1 -llib1
|
||||||
@echo 'Finished building target: $@'
|
@echo 'Finished building target: $@'
|
||||||
@echo ' '
|
@echo ' '
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Automatically-generated file. Do not edit!
|
# Automatically-generated file. Do not edit!
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
USER_OBJS := uo1
|
USER_OBJS :=
|
||||||
|
|
||||||
LIBS := -llib1
|
LIBS :=
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,6 @@ RM := rm -rf
|
||||||
-include d1/d2/d3/subdir.mk
|
-include d1/d2/d3/subdir.mk
|
||||||
-include d1/d2/subdir.mk
|
-include d1/d2/subdir.mk
|
||||||
-include d1/subdir.mk
|
-include d1/subdir.mk
|
||||||
-include objects.mk
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
ifneq ($(strip $(C++_DEPS)),)
|
ifneq ($(strip $(C++_DEPS)),)
|
||||||
|
@ -61,10 +60,10 @@ all: main-build
|
||||||
main-build: test_40
|
main-build: test_40
|
||||||
|
|
||||||
# Tool invocations
|
# Tool invocations
|
||||||
test_40: $(OBJS) $(USER_OBJS) makefile objects.mk $(OPTIONAL_TOOL_DEPS)
|
test_40: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS) uo2
|
||||||
@echo 'Building target: $@'
|
@echo 'Building target: $@'
|
||||||
@echo 'Invoking: Test 4.0 ToolName.linker.gnu.cpp'
|
@echo 'Invoking: Test 4.0 ToolName.linker.gnu.cpp'
|
||||||
g++ -Llib/path/2 -o "test_40" $(OBJS) $(USER_OBJS) $(LIBS)
|
g++ -Llib/path/2 -o "test_40" $(OBJS) $(USER_OBJS) $(LIBS) uo2 -llib2
|
||||||
@echo 'Finished building target: $@'
|
@echo 'Finished building target: $@'
|
||||||
@echo ' '
|
@echo ' '
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Automatically-generated file. Do not edit!
|
# Automatically-generated file. Do not edit!
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
USER_OBJS := uo2
|
USER_OBJS :=
|
||||||
|
|
||||||
LIBS := -llib2
|
LIBS :=
|
||||||
|
|
||||||
|
|
|
@ -219,7 +219,6 @@ public abstract class AbstractBuilderTest {
|
||||||
resources.add(buildDir);
|
resources.add(buildDir);
|
||||||
if (externalBuilder) {
|
if (externalBuilder) {
|
||||||
resources.add(buildDir.getFile("makefile"));
|
resources.add(buildDir.getFile("makefile"));
|
||||||
resources.add(buildDir.getFile("objects.mk"));
|
|
||||||
resources.add(buildDir.getFile("sources.mk"));
|
resources.add(buildDir.getFile("sources.mk"));
|
||||||
}
|
}
|
||||||
for (String obj : objs) {
|
for (String obj : objs) {
|
||||||
|
|
|
@ -69,8 +69,8 @@ public class BuildSystem40Tests extends TestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void test40() throws Exception {
|
public void test40() throws Exception {
|
||||||
String[] makefiles = { "makefile", "objects.mk", "sources.mk", "d1/subdir.mk", "d1/d2/subdir.mk",
|
String[] makefiles = { "makefile", "sources.mk", "d1/subdir.mk", "d1/d2/subdir.mk", "d1/d2/d3/subdir.mk",
|
||||||
"d1/d2/d3/subdir.mk", "d1_1/subdir.mk", "d1_1/d2_1/subdir.mk", "dir1/dd/excluded_c/subdir.mk",
|
"d1_1/subdir.mk", "d1_1/d2_1/subdir.mk", "dir1/dd/excluded_c/subdir.mk",
|
||||||
"dir1/dd/excluded_c/asd/subdir.mk", "dir1/dd/ff/subdir.mk", };
|
"dir1/dd/excluded_c/asd/subdir.mk", "dir1/dd/ff/subdir.mk", };
|
||||||
IProject[] projects = createProjects("test_40", null, null, true);
|
IProject[] projects = createProjects("test_40", null, null, true);
|
||||||
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
|
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
|
||||||
|
|
|
@ -184,8 +184,8 @@ public class ManagedBuildDependencyCalculatorTests extends TestCase {
|
||||||
* test for dependency calculation as a side-effect of compilation
|
* test for dependency calculation as a side-effect of compilation
|
||||||
*/
|
*/
|
||||||
public void test1DepCalc2() {
|
public void test1DepCalc2() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"),
|
Path.fromOSString("subdir.mk"),
|
||||||
// This file is different using Cygwin vs GCC
|
// This file is different using Cygwin vs GCC
|
||||||
//Path.fromOSString("main.d"),
|
//Path.fromOSString("main.d"),
|
||||||
Path.fromOSString("Sources/subdir.mk"), Path.fromOSString("Sources/func1.d"),
|
Path.fromOSString("Sources/subdir.mk"), Path.fromOSString("Sources/func1.d"),
|
||||||
|
@ -199,8 +199,8 @@ public class ManagedBuildDependencyCalculatorTests extends TestCase {
|
||||||
* test for dependency calculation using Echo, a 2nd conmpilation step, and post-processing
|
* test for dependency calculation using Echo, a 2nd conmpilation step, and post-processing
|
||||||
*/
|
*/
|
||||||
public void test1DepCalc3() {
|
public void test1DepCalc3() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"),
|
Path.fromOSString("subdir.mk"),
|
||||||
// This file is different using Cygwin vs GCC
|
// This file is different using Cygwin vs GCC
|
||||||
//Path.fromOSString("main.d"),
|
//Path.fromOSString("main.d"),
|
||||||
Path.fromOSString("Sources/subdir.mk"), Path.fromOSString("Sources/func1.d"),
|
Path.fromOSString("Sources/subdir.mk"), Path.fromOSString("Sources/func1.d"),
|
||||||
|
@ -214,8 +214,8 @@ public class ManagedBuildDependencyCalculatorTests extends TestCase {
|
||||||
* test for dependency calculation that uses a separate, pre-build, step to generate dependency files
|
* test for dependency calculation that uses a separate, pre-build, step to generate dependency files
|
||||||
*/
|
*/
|
||||||
public void test1DepCalcPreBuild() {
|
public void test1DepCalcPreBuild() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"),
|
Path.fromOSString("subdir.mk"),
|
||||||
// This file is different using Cygwin vs GCC
|
// This file is different using Cygwin vs GCC
|
||||||
//Path.fromOSString("main.d"),
|
//Path.fromOSString("main.d"),
|
||||||
Path.fromOSString("Sources/subdir.mk"), Path.fromOSString("Sources/func1.d"),
|
Path.fromOSString("Sources/subdir.mk"), Path.fromOSString("Sources/func1.d"),
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2004, 2011 Intel Corporation and others.
|
* Copyright (c) 2004, 2022 Intel Corporation and others.
|
||||||
*
|
*
|
||||||
* This program and the accompanying materials
|
* This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License 2.0
|
* are made available under the terms of the Eclipse Public License 2.0
|
||||||
|
@ -17,6 +17,7 @@ package org.eclipse.cdt.managedbuilder.core.tests;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.managedbuilder.core.BuildException;
|
||||||
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
|
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
|
||||||
import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
|
import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
|
||||||
import org.eclipse.cdt.managedbuilder.core.IManagedCommandLineGenerator;
|
import org.eclipse.cdt.managedbuilder.core.IManagedCommandLineGenerator;
|
||||||
|
@ -42,7 +43,9 @@ public class ManagedCommandLineGeneratorTest extends TestCase {
|
||||||
"${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}",
|
"${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}",
|
||||||
"${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT}",
|
"${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT}",
|
||||||
"${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}",
|
"${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}",
|
||||||
|
"${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} ${EXTRA_FLAGS}",
|
||||||
"${command} ${flags} ${output_flag}${output_prefix}${output} ${WRONG_VAR_NAME}" };
|
"${command} ${flags} ${output_flag}${output_prefix}${output} ${WRONG_VAR_NAME}" };
|
||||||
|
private static String TEST_TOOL_ID = "test.four.dot.zero.cdt.managedbuild.tool.gnu.c.linker";
|
||||||
private static String COMMAND_VAL = "[command]";
|
private static String COMMAND_VAL = "[command]";
|
||||||
private static String FLAGS_VAL = "[flags]";
|
private static String FLAGS_VAL = "[flags]";
|
||||||
private static String[] FLAGS_ARRAY_VAL = FLAGS_VAL.split("\\s");
|
private static String[] FLAGS_ARRAY_VAL = FLAGS_VAL.split("\\s");
|
||||||
|
@ -51,15 +54,20 @@ public class ManagedCommandLineGeneratorTest extends TestCase {
|
||||||
private static String OUTPUT_VAL = "[output]";
|
private static String OUTPUT_VAL = "[output]";
|
||||||
private static String INPUTS_VAL = "[inputs]";
|
private static String INPUTS_VAL = "[inputs]";
|
||||||
private static String[] INPUTS_ARRAY_VAL = INPUTS_VAL.split("\\s");
|
private static String[] INPUTS_ARRAY_VAL = INPUTS_VAL.split("\\s");
|
||||||
|
private static String[] OBJECTS_ARRAY_VAL = new String[] { "obj0", "obj1" };
|
||||||
|
private static String[] LIBRARIES_ARRAY_VAL = new String[] { "lib0", "lib1" };
|
||||||
|
private static String EXTRA_FLAGS = "obj0 obj1 -llib0 -llib1";
|
||||||
private static String[] commandLineEtalonesForPatterns = {
|
private static String[] commandLineEtalonesForPatterns = {
|
||||||
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\""
|
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\""
|
||||||
+ " " + "\"" + INPUTS_VAL + "\"",
|
+ " " + "\"" + INPUTS_VAL + "\" " + EXTRA_FLAGS,
|
||||||
COMMAND_VAL, COMMAND_VAL + " " + FLAGS_VAL, COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL,
|
COMMAND_VAL, COMMAND_VAL + " " + FLAGS_VAL, COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL,
|
||||||
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + OUTPUT_PREFIX_VAL,
|
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + OUTPUT_PREFIX_VAL,
|
||||||
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"",
|
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"",
|
||||||
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"",
|
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"",
|
||||||
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " "
|
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " "
|
||||||
+ "\"" + INPUTS_VAL + "\"",
|
+ "\"" + INPUTS_VAL + "\"",
|
||||||
|
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " "
|
||||||
|
+ "\"" + INPUTS_VAL + "\" " + EXTRA_FLAGS,
|
||||||
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " "
|
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " "
|
||||||
+ "${WRONG_VAR_NAME}" };
|
+ "${WRONG_VAR_NAME}" };
|
||||||
|
|
||||||
|
@ -71,11 +79,14 @@ public class ManagedCommandLineGeneratorTest extends TestCase {
|
||||||
return new TestSuite(ManagedCommandLineGeneratorTest.class);
|
return new TestSuite(ManagedCommandLineGeneratorTest.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void testGenerateCommandLineInfoPatterns() {
|
public final void testGenerateCommandLineInfoPatterns() throws BuildException {
|
||||||
|
ITool tool = ManagedBuildManager.getExtensionTool(TEST_TOOL_ID);
|
||||||
|
setToolOptionByType(tool, IOption.OBJECTS, OBJECTS_ARRAY_VAL);
|
||||||
|
setToolOptionByType(tool, IOption.LIBRARIES, LIBRARIES_ARRAY_VAL);
|
||||||
IManagedCommandLineGenerator gen = new ManagedCommandLineGenerator();
|
IManagedCommandLineGenerator gen = new ManagedCommandLineGenerator();
|
||||||
IManagedCommandLineInfo info = null;
|
IManagedCommandLineInfo info = null;
|
||||||
for (int i = 0; i < testCommandLinePatterns.length; i++) {
|
for (int i = 0; i < testCommandLinePatterns.length; i++) {
|
||||||
info = gen.generateCommandLineInfo(null, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
|
info = gen.generateCommandLineInfo(tool, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
|
||||||
OUTPUT_VAL, INPUTS_ARRAY_VAL, testCommandLinePatterns[i]);
|
OUTPUT_VAL, INPUTS_ARRAY_VAL, testCommandLinePatterns[i]);
|
||||||
assertNotNull(info);
|
assertNotNull(info);
|
||||||
if (i < commandLineEtalonesForPatterns.length) {
|
if (i < commandLineEtalonesForPatterns.length) {
|
||||||
|
@ -84,59 +95,63 @@ public class ManagedCommandLineGeneratorTest extends TestCase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void testGenerateCommandLineInfoDoublePattern() {
|
public final void testGenerateCommandLineInfoDoublePattern() throws BuildException {
|
||||||
|
ITool tool = ManagedBuildManager.getExtensionTool(TEST_TOOL_ID);
|
||||||
IManagedCommandLineGenerator gen = new ManagedCommandLineGenerator();
|
IManagedCommandLineGenerator gen = new ManagedCommandLineGenerator();
|
||||||
|
|
||||||
IManagedCommandLineInfo info = gen.generateCommandLineInfo(null, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL,
|
IManagedCommandLineInfo info = gen.generateCommandLineInfo(tool, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL,
|
||||||
OUTPUT_PREFIX_VAL, OUTPUT_VAL, INPUTS_ARRAY_VAL, "${OUTPUT_FLAG} ${OUTPUT_FLAG}");
|
OUTPUT_PREFIX_VAL, OUTPUT_VAL, INPUTS_ARRAY_VAL, "${OUTPUT_FLAG} ${OUTPUT_FLAG}");
|
||||||
assertNotNull(info);
|
assertNotNull(info);
|
||||||
assertEquals(OUTPUT_FLAG_VAL + " " + OUTPUT_FLAG_VAL, info.getCommandLine());
|
assertEquals(OUTPUT_FLAG_VAL + " " + OUTPUT_FLAG_VAL, info.getCommandLine());
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void testGenerateCommandLineInfoParameters() {
|
public final void testGenerateCommandLineInfoParameters() throws BuildException {
|
||||||
|
ITool tool = ManagedBuildManager.getExtensionTool(TEST_TOOL_ID);
|
||||||
|
setToolOptionByType(tool, IOption.OBJECTS, OBJECTS_ARRAY_VAL);
|
||||||
|
setToolOptionByType(tool, IOption.LIBRARIES, LIBRARIES_ARRAY_VAL);
|
||||||
IManagedCommandLineGenerator gen = new ManagedCommandLineGenerator();
|
IManagedCommandLineGenerator gen = new ManagedCommandLineGenerator();
|
||||||
|
|
||||||
IManagedCommandLineInfo info = gen.generateCommandLineInfo(null, "", FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL,
|
IManagedCommandLineInfo info = gen.generateCommandLineInfo(tool, "", FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL,
|
||||||
OUTPUT_PREFIX_VAL, OUTPUT_VAL, INPUTS_ARRAY_VAL, null);
|
OUTPUT_PREFIX_VAL, OUTPUT_VAL, INPUTS_ARRAY_VAL, null);
|
||||||
assertNotNull(info);
|
assertNotNull(info);
|
||||||
assertEquals(FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " " + "\""
|
assertEquals(FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " " + "\""
|
||||||
+ INPUTS_VAL + "\"", info.getCommandLine());
|
+ INPUTS_VAL + "\" " + EXTRA_FLAGS, info.getCommandLine());
|
||||||
|
|
||||||
info = gen.generateCommandLineInfo(null, COMMAND_VAL, new String[0], OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
|
info = gen.generateCommandLineInfo(tool, COMMAND_VAL, new String[0], OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
|
||||||
OUTPUT_VAL, INPUTS_ARRAY_VAL, null);
|
OUTPUT_VAL, INPUTS_ARRAY_VAL, null);
|
||||||
assertNotNull(info);
|
assertNotNull(info);
|
||||||
assertEquals(COMMAND_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " "
|
assertEquals(COMMAND_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " "
|
||||||
+ "\"" + INPUTS_VAL + "\"", info.getCommandLine());
|
+ "\"" + INPUTS_VAL + "\" " + EXTRA_FLAGS, info.getCommandLine());
|
||||||
|
|
||||||
info = gen.generateCommandLineInfo(null, COMMAND_VAL, FLAGS_ARRAY_VAL, "", OUTPUT_PREFIX_VAL, OUTPUT_VAL,
|
info = gen.generateCommandLineInfo(tool, COMMAND_VAL, FLAGS_ARRAY_VAL, "", OUTPUT_PREFIX_VAL, OUTPUT_VAL,
|
||||||
INPUTS_ARRAY_VAL, null);
|
INPUTS_ARRAY_VAL, null);
|
||||||
assertNotNull(info);
|
assertNotNull(info);
|
||||||
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " " + "\""
|
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " " + "\""
|
||||||
+ INPUTS_VAL + "\"", info.getCommandLine());
|
+ INPUTS_VAL + "\" " + EXTRA_FLAGS, info.getCommandLine());
|
||||||
|
|
||||||
info = gen.generateCommandLineInfo(null, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, "", OUTPUT_VAL,
|
info = gen.generateCommandLineInfo(tool, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, "", OUTPUT_VAL,
|
||||||
INPUTS_ARRAY_VAL, null);
|
INPUTS_ARRAY_VAL, null);
|
||||||
assertNotNull(info);
|
assertNotNull(info);
|
||||||
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + "\"" + OUTPUT_VAL + "\"" + " " + "\""
|
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + "\"" + OUTPUT_VAL + "\"" + " " + "\""
|
||||||
+ INPUTS_VAL + "\"", info.getCommandLine());
|
+ INPUTS_VAL + "\" " + EXTRA_FLAGS, info.getCommandLine());
|
||||||
|
|
||||||
info = gen.generateCommandLineInfo(null, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL, "",
|
info = gen.generateCommandLineInfo(tool, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL, "",
|
||||||
INPUTS_ARRAY_VAL, null);
|
INPUTS_ARRAY_VAL, null);
|
||||||
assertNotNull(info);
|
assertNotNull(info);
|
||||||
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + " " + "\""
|
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + " " + "\""
|
||||||
+ INPUTS_VAL + "\"", info.getCommandLine());
|
+ INPUTS_VAL + "\" " + EXTRA_FLAGS, info.getCommandLine());
|
||||||
|
|
||||||
info = gen.generateCommandLineInfo(null, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
|
info = gen.generateCommandLineInfo(tool, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
|
||||||
OUTPUT_VAL, new String[0], null);
|
OUTPUT_VAL, new String[0], null);
|
||||||
assertNotNull(info);
|
assertNotNull(info);
|
||||||
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL
|
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL
|
||||||
+ "\"", info.getCommandLine());
|
+ "\" " + EXTRA_FLAGS, info.getCommandLine());
|
||||||
|
|
||||||
info = gen.generateCommandLineInfo(null, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
|
info = gen.generateCommandLineInfo(tool, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
|
||||||
OUTPUT_VAL, null, null);
|
OUTPUT_VAL, null, null);
|
||||||
assertNotNull(info);
|
assertNotNull(info);
|
||||||
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL
|
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL
|
||||||
+ "\"", info.getCommandLine());
|
+ "\" " + EXTRA_FLAGS, info.getCommandLine());
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void testCustomGenerator() {
|
public final void testCustomGenerator() {
|
||||||
|
@ -332,9 +347,13 @@ public class ManagedCommandLineGeneratorTest extends TestCase {
|
||||||
|
|
||||||
String[] libs = config.getLibs(config.getArtifactExtension());
|
String[] libs = config.getLibs(config.getArtifactExtension());
|
||||||
assertEquals(Arrays.asList("-optLibs=\"val4;COCG2;\"").toString(), Arrays.asList(libs).toString());
|
assertEquals(Arrays.asList("-optLibs=\"val4;COCG2;\"").toString(), Arrays.asList(libs).toString());
|
||||||
|
assertEquals(Arrays.asList(libs).toString(),
|
||||||
|
Arrays.asList(tool.getExtraFlags(IOption.LIBRARIES)).toString());
|
||||||
|
|
||||||
String[] userObjs = config.getUserObjects(config.getArtifactExtension());
|
String[] userObjs = config.getUserObjects(config.getArtifactExtension());
|
||||||
assertEquals(Arrays.asList("-optUserObjs=\"val5;COCG2;\"").toString(), Arrays.asList(userObjs).toString());
|
assertEquals(Arrays.asList("-optUserObjs=\"val5;COCG2;\"").toString(), Arrays.asList(userObjs).toString());
|
||||||
|
assertEquals(Arrays.asList(userObjs).toString(),
|
||||||
|
Arrays.asList(tool.getExtraFlags(IOption.OBJECTS)).toString());
|
||||||
|
|
||||||
ManagedBuildTestHelper.removeProject("COCG2");
|
ManagedBuildTestHelper.removeProject("COCG2");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -401,4 +420,12 @@ public class ManagedCommandLineGeneratorTest extends TestCase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setToolOptionByType(ITool tool, int valueType, String[] value) throws BuildException {
|
||||||
|
for (IOption option : tool.getOptions()) {
|
||||||
|
if (valueType == option.getValueType()) {
|
||||||
|
option.setValue(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -248,8 +248,8 @@ public class ManagedProject21MakefileTests extends TestCase {
|
||||||
* tests 2.1 style tool integration for a single file executable
|
* tests 2.1 style tool integration for a single file executable
|
||||||
*/
|
*/
|
||||||
public void testSingleFileExe() {
|
public void testSingleFileExe() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
|
Path.fromOSString("subdir.mk") };
|
||||||
IProject[] projects = createProjects("singleFileExe", null, null, true);
|
IProject[] projects = createProjects("singleFileExe", null, null, true);
|
||||||
buildProjects("singleFileExe", projects, makefiles);
|
buildProjects("singleFileExe", projects, makefiles);
|
||||||
}
|
}
|
||||||
|
@ -258,8 +258,8 @@ public class ManagedProject21MakefileTests extends TestCase {
|
||||||
* tests 2.1 style tool integration for a two file SO
|
* tests 2.1 style tool integration for a two file SO
|
||||||
*/
|
*/
|
||||||
public void testTwoFileSO() {
|
public void testTwoFileSO() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
|
Path.fromOSString("subdir.mk") };
|
||||||
IProject[] projects = createProjects("twoFileSO", null, null, true);
|
IProject[] projects = createProjects("twoFileSO", null, null, true);
|
||||||
buildProjects("twoFileSO", projects, makefiles);
|
buildProjects("twoFileSO", projects, makefiles);
|
||||||
}
|
}
|
||||||
|
@ -268,8 +268,8 @@ public class ManagedProject21MakefileTests extends TestCase {
|
||||||
* tests 2.1 style tool integration for multiple source files & a resource configuration
|
* tests 2.1 style tool integration for multiple source files & a resource configuration
|
||||||
*/
|
*/
|
||||||
public void testMultiResConfig() {
|
public void testMultiResConfig() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"), Path.fromOSString("source1/subdir.mk"),
|
Path.fromOSString("subdir.mk"), Path.fromOSString("source1/subdir.mk"),
|
||||||
Path.fromOSString("source2/subdir.mk"), Path.fromOSString("source2/source21/subdir.mk") };
|
Path.fromOSString("source2/subdir.mk"), Path.fromOSString("source2/source21/subdir.mk") };
|
||||||
IProject[] projects = createProjects("multiResConfig", null, null, true);
|
IProject[] projects = createProjects("multiResConfig", null, null, true);
|
||||||
buildProjects("multiResConfig", projects, makefiles);
|
buildProjects("multiResConfig", projects, makefiles);
|
||||||
|
@ -280,7 +280,7 @@ public class ManagedProject21MakefileTests extends TestCase {
|
||||||
*/
|
*/
|
||||||
public void testLinkedLib() throws IOException {
|
public void testLinkedLib() throws IOException {
|
||||||
boolean succeeded = false;
|
boolean succeeded = false;
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"),
|
||||||
//Path.fromOSString("subdir.mk") // Can't compare this yet since it contains absolute paths!
|
//Path.fromOSString("subdir.mk") // Can't compare this yet since it contains absolute paths!
|
||||||
Path.fromOSString("sources.mk") };
|
Path.fromOSString("sources.mk") };
|
||||||
IPath[] linkedFiles = { Path.fromOSString("f1.c"), Path.fromOSString("f2.c"), Path.fromOSString("test_ar.h") };
|
IPath[] linkedFiles = { Path.fromOSString("f1.c"), Path.fromOSString("f2.c"), Path.fromOSString("test_ar.h") };
|
||||||
|
@ -309,11 +309,11 @@ public class ManagedProject21MakefileTests extends TestCase {
|
||||||
*/
|
*/
|
||||||
public void testLinkedFolder() throws IOException {
|
public void testLinkedFolder() throws IOException {
|
||||||
boolean succeeded = false;
|
boolean succeeded = false;
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("subdir.mk"),
|
||||||
Path.fromOSString("subdir.mk"), Path.fromOSString("sources.mk") };
|
Path.fromOSString("sources.mk") };
|
||||||
IPath[] linkedFiles = { Path.fromOSString("f1.c"), Path.fromOSString("f2.c"), Path.fromOSString("test_ar.h"),
|
IPath[] linkedFiles = { Path.fromOSString("f1.c"), Path.fromOSString("f2.c"), Path.fromOSString("test_ar.h"),
|
||||||
Path.fromOSString("Benchmarks/makefile"), Path.fromOSString("Benchmarks/objects.mk"),
|
Path.fromOSString("Benchmarks/makefile"), Path.fromOSString("Benchmarks/subdir.mk"),
|
||||||
Path.fromOSString("Benchmarks/subdir.mk"), Path.fromOSString("Benchmarks/sources.mk") };
|
Path.fromOSString("Benchmarks/sources.mk") };
|
||||||
File srcDirFile = CTestPlugin.getFileInPlugin(new Path("resources/test21Projects/linkedFolder/"));
|
File srcDirFile = CTestPlugin.getFileInPlugin(new Path("resources/test21Projects/linkedFolder/"));
|
||||||
IPath srcDir = Path.fromOSString(srcDirFile.toString());
|
IPath srcDir = Path.fromOSString(srcDirFile.toString());
|
||||||
IPath tmpSubDir = Path.fromOSString("CDTMBSTest");
|
IPath tmpSubDir = Path.fromOSString("CDTMBSTest");
|
||||||
|
|
|
@ -287,8 +287,8 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* tests 3.0 style tool integration for a single file executable
|
* tests 3.0 style tool integration for a single file executable
|
||||||
*/
|
*/
|
||||||
public void test30SingleFileExe() {
|
public void test30SingleFileExe() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
|
Path.fromOSString("subdir.mk") };
|
||||||
IProject[] projects = createProjects("singleFileExe", null, null, true);
|
IProject[] projects = createProjects("singleFileExe", null, null, true);
|
||||||
buildProjects(projects, makefiles);
|
buildProjects(projects, makefiles);
|
||||||
}
|
}
|
||||||
|
@ -297,8 +297,8 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* tests 3.0 style tool integration for a two file SO
|
* tests 3.0 style tool integration for a two file SO
|
||||||
*/
|
*/
|
||||||
public void test30TwoFileSO() {
|
public void test30TwoFileSO() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
|
Path.fromOSString("subdir.mk") };
|
||||||
IProject[] projects = createProjects("twoFileSO", null, null, true);
|
IProject[] projects = createProjects("twoFileSO", null, null, true);
|
||||||
buildProjects(projects, makefiles);
|
buildProjects(projects, makefiles);
|
||||||
}
|
}
|
||||||
|
@ -307,11 +307,11 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* tests 3.0 style tool integration for multiple source files & a resource configuration
|
* tests 3.0 style tool integration for multiple source files & a resource configuration
|
||||||
*/
|
*/
|
||||||
public void test30MultiResConfig() {
|
public void test30MultiResConfig() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"), Path.fromOSString("main.d"),
|
Path.fromOSString("subdir.mk"), Path.fromOSString("main.d"), Path.fromOSString("source1/subdir.mk"),
|
||||||
Path.fromOSString("source1/subdir.mk"), Path.fromOSString("source1/Class1.d"),
|
Path.fromOSString("source1/Class1.d"), Path.fromOSString("source2/subdir.mk"),
|
||||||
Path.fromOSString("source2/subdir.mk"), Path.fromOSString("source2/Class2.d"),
|
Path.fromOSString("source2/Class2.d"), Path.fromOSString("source2/source21/Class21.d"),
|
||||||
Path.fromOSString("source2/source21/Class21.d"), Path.fromOSString("source2/source21/subdir.mk") };
|
Path.fromOSString("source2/source21/subdir.mk") };
|
||||||
IProject[] projects = createProjects("multiResConfig", null, null, true);
|
IProject[] projects = createProjects("multiResConfig", null, null, true);
|
||||||
buildProjects(projects, makefiles);
|
buildProjects(projects, makefiles);
|
||||||
}
|
}
|
||||||
|
@ -320,7 +320,7 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* tests 3.0 style tool integration for linked files
|
* tests 3.0 style tool integration for linked files
|
||||||
*/
|
*/
|
||||||
public void test30LinkedLib() throws IOException {
|
public void test30LinkedLib() throws IOException {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"),
|
||||||
//Path.fromOSString("subdir.mk") // Can't compare this yet since it contains absolute paths!
|
//Path.fromOSString("subdir.mk") // Can't compare this yet since it contains absolute paths!
|
||||||
Path.fromOSString("sources.mk") };
|
Path.fromOSString("sources.mk") };
|
||||||
IPath[] linkedFiles = { Path.fromOSString("f1_30.c"), Path.fromOSString("f2_30.c"),
|
IPath[] linkedFiles = { Path.fromOSString("f1_30.c"), Path.fromOSString("f2_30.c"),
|
||||||
|
@ -348,11 +348,11 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* tests 3.0 style tool integration for a linked folder
|
* tests 3.0 style tool integration for a linked folder
|
||||||
*/
|
*/
|
||||||
public void test30LinkedFolder() throws IOException {
|
public void test30LinkedFolder() throws IOException {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("subdir.mk"),
|
||||||
Path.fromOSString("subdir.mk"), Path.fromOSString("sources.mk") };
|
Path.fromOSString("sources.mk") };
|
||||||
IPath[] linkedFiles = { Path.fromOSString("f1.c"), Path.fromOSString("f2.c"), Path.fromOSString("test_ar.h"),
|
IPath[] linkedFiles = { Path.fromOSString("f1.c"), Path.fromOSString("f2.c"), Path.fromOSString("test_ar.h"),
|
||||||
Path.fromOSString("Benchmarks/makefile"), Path.fromOSString("Benchmarks/objects.mk"),
|
Path.fromOSString("Benchmarks/makefile"), Path.fromOSString("Benchmarks/subdir.mk"),
|
||||||
Path.fromOSString("Benchmarks/subdir.mk"), Path.fromOSString("Benchmarks/sources.mk") };
|
Path.fromOSString("Benchmarks/sources.mk") };
|
||||||
File srcDirFile = CTestPlugin.getFileInPlugin(new Path("resources/test30Projects/linkedFolder/"));
|
File srcDirFile = CTestPlugin.getFileInPlugin(new Path("resources/test30Projects/linkedFolder/"));
|
||||||
IPath srcDir = Path.fromOSString(srcDirFile.toString());
|
IPath srcDir = Path.fromOSString(srcDirFile.toString());
|
||||||
IPath tmpRootDir = Path
|
IPath tmpRootDir = Path
|
||||||
|
@ -377,9 +377,9 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* tests 3.0 style tool integration with pre and post process steps added to typical compile & link
|
* tests 3.0 style tool integration with pre and post process steps added to typical compile & link
|
||||||
*/
|
*/
|
||||||
public void test30CopyandDeploy() {
|
public void test30CopyandDeploy() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"), Path.fromOSString("main.d"),
|
Path.fromOSString("subdir.mk"), Path.fromOSString("main.d"), Path.fromOSString("Functions/subdir.mk"),
|
||||||
Path.fromOSString("Functions/subdir.mk"), Path.fromOSString("Functions/Func1.d") };
|
Path.fromOSString("Functions/Func1.d") };
|
||||||
IProject[] projects = createProjects("copyandDeploy", null, null, true);
|
IProject[] projects = createProjects("copyandDeploy", null, null, true);
|
||||||
buildProjects(projects, makefiles);
|
buildProjects(projects, makefiles);
|
||||||
}
|
}
|
||||||
|
@ -389,8 +389,8 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* occurs in the managedbuild system
|
* occurs in the managedbuild system
|
||||||
*/
|
*/
|
||||||
public void test30DeleteFile() {
|
public void test30DeleteFile() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("subdir.mk"),
|
||||||
Path.fromOSString("subdir.mk"), Path.fromOSString("sources.mk") };
|
Path.fromOSString("sources.mk") };
|
||||||
|
|
||||||
IProject[] projects = createProjects("deleteFile", null, null, true);
|
IProject[] projects = createProjects("deleteFile", null, null, true);
|
||||||
final IWorkspace workspace = ResourcesPlugin.getWorkspace();
|
final IWorkspace workspace = ResourcesPlugin.getWorkspace();
|
||||||
|
@ -419,8 +419,8 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* "excluded from build" to see that this degenerative case is handled gracefully
|
* "excluded from build" to see that this degenerative case is handled gracefully
|
||||||
*/
|
*/
|
||||||
public void test30NoFilesToBuild() {
|
public void test30NoFilesToBuild() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("subdir.mk"),
|
||||||
Path.fromOSString("subdir.mk"), Path.fromOSString("sources.mk") };
|
Path.fromOSString("sources.mk") };
|
||||||
|
|
||||||
IProject[] projects = createProjects("noFilesToBuild", null, null, true);
|
IProject[] projects = createProjects("noFilesToBuild", null, null, true);
|
||||||
IProject project = projects[0];
|
IProject project = projects[0];
|
||||||
|
@ -437,8 +437,8 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* tests 3.0 managed build system with a project which has a file with no file extesnion
|
* tests 3.0 managed build system with a project which has a file with no file extesnion
|
||||||
*/
|
*/
|
||||||
public void testFileWithNoExtension() {
|
public void testFileWithNoExtension() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
|
Path.fromOSString("subdir.mk") };
|
||||||
IProject[] projects = createProjects("testFileWithNoExtension", null, null, true);
|
IProject[] projects = createProjects("testFileWithNoExtension", null, null, true);
|
||||||
buildProjects(projects, makefiles);
|
buildProjects(projects, makefiles);
|
||||||
}
|
}
|
||||||
|
@ -448,8 +448,8 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* the proper commands are generated in the makefile which is created by the managedbuild system
|
* the proper commands are generated in the makefile which is created by the managedbuild system
|
||||||
*/
|
*/
|
||||||
public void testPreAndPostProcessBuildSteps() {
|
public void testPreAndPostProcessBuildSteps() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("subdir.mk"),
|
||||||
Path.fromOSString("subdir.mk"), Path.fromOSString("sources.mk") };
|
Path.fromOSString("sources.mk") };
|
||||||
|
|
||||||
IProject[] projects = createProjects("preAndPostBuildSteps", null, null, true);
|
IProject[] projects = createProjects("preAndPostBuildSteps", null, null, true);
|
||||||
IProject project = projects[0];
|
IProject project = projects[0];
|
||||||
|
@ -467,8 +467,8 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* the proper commands are generated in the makefile which is created by the managedbuild system
|
* the proper commands are generated in the makefile which is created by the managedbuild system
|
||||||
*/
|
*/
|
||||||
public void testResourceCustomBuildStep() {
|
public void testResourceCustomBuildStep() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("subdir.mk"),
|
||||||
Path.fromOSString("subdir.mk"), Path.fromOSString("sources.mk") };
|
Path.fromOSString("sources.mk") };
|
||||||
ITool rcbsTool;
|
ITool rcbsTool;
|
||||||
IInputType rcbsToolInputType;
|
IInputType rcbsToolInputType;
|
||||||
IAdditionalInput rcbsToolInputTypeAdditionalInput;
|
IAdditionalInput rcbsToolInputTypeAdditionalInput;
|
||||||
|
@ -497,8 +497,8 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* tests 3.0 style tool integration with pre and post process steps added to typical compile & link
|
* tests 3.0 style tool integration with pre and post process steps added to typical compile & link
|
||||||
*/
|
*/
|
||||||
public void test30_1() {
|
public void test30_1() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
|
Path.fromOSString("subdir.mk") };
|
||||||
IProject[] projects = createProjects("test30_1", null, null, true);
|
IProject[] projects = createProjects("test30_1", null, null, true);
|
||||||
buildProjects(projects, makefiles);
|
buildProjects(projects, makefiles);
|
||||||
}
|
}
|
||||||
|
@ -507,8 +507,8 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* tests 3.0 style tool integration with multiple input types use Eclipse content types
|
* tests 3.0 style tool integration with multiple input types use Eclipse content types
|
||||||
*/
|
*/
|
||||||
public void test30_2() {
|
public void test30_2() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
|
Path.fromOSString("subdir.mk") };
|
||||||
IProject[] projects = createProjects("test30_2", null, null, true);
|
IProject[] projects = createProjects("test30_2", null, null, true);
|
||||||
buildProjects(projects, makefiles);
|
buildProjects(projects, makefiles);
|
||||||
}
|
}
|
||||||
|
@ -543,8 +543,8 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* tests external dependency calculation using Fortran modules
|
* tests external dependency calculation using Fortran modules
|
||||||
*/
|
*/
|
||||||
public void CDTFortranTest1() {
|
public void CDTFortranTest1() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
|
Path.fromOSString("subdir.mk") };
|
||||||
IProject[] projects = createProjects("CDTFortranTest1", null, null, true);
|
IProject[] projects = createProjects("CDTFortranTest1", null, null, true);
|
||||||
buildProjects(projects, makefiles);
|
buildProjects(projects, makefiles);
|
||||||
}
|
}
|
||||||
|
@ -553,9 +553,8 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* tests external dependency calculation using Fortran modules
|
* tests external dependency calculation using Fortran modules
|
||||||
*/
|
*/
|
||||||
public void CDTFortranTest2() {
|
public void CDTFortranTest2() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("module/subdir.mk"),
|
Path.fromOSString("module/subdir.mk"), Path.fromOSString("Sources/subdir.mk") };
|
||||||
Path.fromOSString("Sources/subdir.mk") };
|
|
||||||
IProject[] projects = createProjects("CDTFortranTest2", null, null, true);
|
IProject[] projects = createProjects("CDTFortranTest2", null, null, true);
|
||||||
buildProjects(projects, makefiles);
|
buildProjects(projects, makefiles);
|
||||||
}
|
}
|
||||||
|
@ -564,15 +563,15 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* tests the InputType assignToOption attribute
|
* tests the InputType assignToOption attribute
|
||||||
*/
|
*/
|
||||||
public void TestATO() {
|
public void TestATO() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
|
Path.fromOSString("subdir.mk") };
|
||||||
IProject[] projects = createProjects("TestATO", null, null, true);
|
IProject[] projects = createProjects("TestATO", null, null, true);
|
||||||
buildProjects(projects, makefiles);
|
buildProjects(projects, makefiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testMacroSupportInBuildDefinitions() {
|
public void testMacroSupportInBuildDefinitions() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
|
Path.fromOSString("subdir.mk") };
|
||||||
IProject[] projects = createProjects("testMacroSupportInBuildDefinitions", null, null, true);
|
IProject[] projects = createProjects("testMacroSupportInBuildDefinitions", null, null, true);
|
||||||
buildProjects(projects, makefiles);
|
buildProjects(projects, makefiles);
|
||||||
}
|
}
|
||||||
|
@ -582,9 +581,9 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* tests managed build system with a project which has resources with spaces in their paths
|
* tests managed build system with a project which has resources with spaces in their paths
|
||||||
*/
|
*/
|
||||||
public void testSpaces() {
|
public void testSpaces() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"),
|
Path.fromOSString("subdir.mk"), Path.fromOSString("main with spaces.d"),
|
||||||
Path.fromOSString("main with spaces.d"), Path.fromOSString("sub folder with spaces/subdir.mk"),
|
Path.fromOSString("sub folder with spaces/subdir.mk"),
|
||||||
Path.fromOSString("sub folder with spaces/foo with spaces.d") };
|
Path.fromOSString("sub folder with spaces/foo with spaces.d") };
|
||||||
IProject[] projects = createProjects("test with spaces", null, null, true);
|
IProject[] projects = createProjects("test with spaces", null, null, true);
|
||||||
buildProjects(projects, makefiles);
|
buildProjects(projects, makefiles);
|
||||||
|
@ -595,8 +594,8 @@ public class ManagedProject30MakefileTests extends TestCase {
|
||||||
* tests managed build system with a project which has resources with spaces in their paths
|
* tests managed build system with a project which has resources with spaces in their paths
|
||||||
*/
|
*/
|
||||||
public void testInputTypeOption() {
|
public void testInputTypeOption() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"), };
|
Path.fromOSString("subdir.mk"), };
|
||||||
IProject[] projects = createProjects("inputTypeOption", null, null, true);
|
IProject[] projects = createProjects("inputTypeOption", null, null, true);
|
||||||
buildProjects(projects, makefiles);
|
buildProjects(projects, makefiles);
|
||||||
}
|
}
|
||||||
|
|
|
@ -209,8 +209,8 @@ public class ManagedProjectUpdateTests extends TestCase {
|
||||||
* in case when user chooses to update the project
|
* in case when user chooses to update the project
|
||||||
*/
|
*/
|
||||||
public void testProjectUpdate12_Update() {
|
public void testProjectUpdate12_Update() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
|
Path.fromOSString("subdir.mk") };
|
||||||
doTestProjectUpdate("1.2", true, true, makefiles);
|
doTestProjectUpdate("1.2", true, true, makefiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -219,8 +219,8 @@ public class ManagedProjectUpdateTests extends TestCase {
|
||||||
* in case when user chooses to update the project
|
* in case when user chooses to update the project
|
||||||
*/
|
*/
|
||||||
public void testProjectUpdate20_Update() {
|
public void testProjectUpdate20_Update() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
|
Path.fromOSString("subdir.mk") };
|
||||||
doTestProjectUpdate("2.0", true, true, makefiles);
|
doTestProjectUpdate("2.0", true, true, makefiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -229,9 +229,8 @@ public class ManagedProjectUpdateTests extends TestCase {
|
||||||
* in case when user chooses to update the project
|
* in case when user chooses to update the project
|
||||||
*/
|
*/
|
||||||
public void testProjectUpdate21_Update() {
|
public void testProjectUpdate21_Update() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"),
|
Path.fromOSString("subdir.mk"), Path.fromOSString("Functions/subdir.mk") };
|
||||||
Path.fromOSString("Functions/subdir.mk") };
|
|
||||||
doTestProjectUpdate("2.1", true, true, makefiles);
|
doTestProjectUpdate("2.1", true, true, makefiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -239,9 +238,8 @@ public class ManagedProjectUpdateTests extends TestCase {
|
||||||
* tests project v2.1 update of a C++ project with C source files
|
* tests project v2.1 update of a C++ project with C source files
|
||||||
*/
|
*/
|
||||||
public void testProjectUpdate21CPP_Update() {
|
public void testProjectUpdate21CPP_Update() {
|
||||||
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
|
IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
|
||||||
Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"),
|
Path.fromOSString("subdir.mk"), Path.fromOSString("Functions/subdir.mk") };
|
||||||
Path.fromOSString("Functions/subdir.mk") };
|
|
||||||
doTestProjectUpdate("2.1CPP", true, true, makefiles);
|
doTestProjectUpdate("2.1CPP", true, true, makefiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||||
Bundle-ManifestVersion: 2
|
Bundle-ManifestVersion: 2
|
||||||
Bundle-Name: %pluginName
|
Bundle-Name: %pluginName
|
||||||
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.core; singleton:=true
|
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.core; singleton:=true
|
||||||
Bundle-Version: 9.3.400.qualifier
|
Bundle-Version: 9.4.0.qualifier
|
||||||
Bundle-Activator: org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin
|
Bundle-Activator: org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin
|
||||||
Bundle-Vendor: %providerName
|
Bundle-Vendor: %providerName
|
||||||
Bundle-Localization: plugin
|
Bundle-Localization: plugin
|
||||||
|
|
|
@ -714,4 +714,11 @@ public interface ITool extends IHoldsOptions {
|
||||||
void setHidden(boolean hidden);
|
void setHidden(boolean hidden);
|
||||||
|
|
||||||
String getUniqueRealName();
|
String getUniqueRealName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 9.4
|
||||||
|
*/
|
||||||
|
default public String[] getExtraFlags(int optionType) {
|
||||||
|
return new String[0];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,8 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.managedbuilder.core;
|
package org.eclipse.cdt.managedbuilder.core;
|
||||||
|
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import org.eclipse.cdt.managedbuilder.internal.core.Tool;
|
import org.eclipse.cdt.managedbuilder.internal.core.Tool;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -29,6 +31,7 @@ public class ManagedCommandLineGenerator implements IManagedCommandLineGenerator
|
||||||
private static final String OUTPUT_PREFIX_PRM_NAME = "OUTPUT_PREFIX"; //$NON-NLS-1$
|
private static final String OUTPUT_PREFIX_PRM_NAME = "OUTPUT_PREFIX"; //$NON-NLS-1$
|
||||||
private static final String OUTPUT_PRM_NAME = "OUTPUT"; //$NON-NLS-1$
|
private static final String OUTPUT_PRM_NAME = "OUTPUT"; //$NON-NLS-1$
|
||||||
private static final String INPUTS_PRM_NAME = "INPUTS"; //$NON-NLS-1$
|
private static final String INPUTS_PRM_NAME = "INPUTS"; //$NON-NLS-1$
|
||||||
|
private static final String EXTRA_FLAGS_PRM_NAME = "EXTRA_FLAGS"; //$NON-NLS-1$
|
||||||
|
|
||||||
private String makeVariable(String variableName) {
|
private String makeVariable(String variableName) {
|
||||||
return "${" + variableName + "}"; //$NON-NLS-1$ //$NON-NLS-2$
|
return "${" + variableName + "}"; //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
@ -65,12 +68,21 @@ public class ManagedCommandLineGenerator implements IManagedCommandLineGenerator
|
||||||
|
|
||||||
String command = commandLinePattern;
|
String command = commandLinePattern;
|
||||||
|
|
||||||
|
// Workaround GNU ld limitation that requires additional objects and libraries to be last on command line
|
||||||
|
String[] extraFlags = mergeArrays(tool.getExtraFlags(IOption.OBJECTS), tool.getExtraFlags(IOption.LIBRARIES));
|
||||||
|
String extraFlagsStr = stringArrayToString(extraFlags);
|
||||||
|
|
||||||
|
// Need to update "flags" in order to make the change visible outside the makefile generator.
|
||||||
|
// NOTE: Do not update the flagsStr as it would render the options listed twice!
|
||||||
|
flags = mergeArrays(flags, extraFlags);
|
||||||
|
|
||||||
command = command.replace(makeVariable(CMD_LINE_PRM_NAME), commandName);
|
command = command.replace(makeVariable(CMD_LINE_PRM_NAME), commandName);
|
||||||
command = command.replace(makeVariable(FLAGS_PRM_NAME), flagsStr);
|
command = command.replace(makeVariable(FLAGS_PRM_NAME), flagsStr);
|
||||||
command = command.replace(makeVariable(OUTPUT_FLAG_PRM_NAME), outputFlag);
|
command = command.replace(makeVariable(OUTPUT_FLAG_PRM_NAME), outputFlag);
|
||||||
command = command.replace(makeVariable(OUTPUT_PREFIX_PRM_NAME), outputPrefix);
|
command = command.replace(makeVariable(OUTPUT_PREFIX_PRM_NAME), outputPrefix);
|
||||||
command = command.replace(makeVariable(OUTPUT_PRM_NAME), outputName);
|
command = command.replace(makeVariable(OUTPUT_PRM_NAME), outputName);
|
||||||
command = command.replace(makeVariable(INPUTS_PRM_NAME), inputsStr);
|
command = command.replace(makeVariable(INPUTS_PRM_NAME), inputsStr);
|
||||||
|
command = command.replace(makeVariable(EXTRA_FLAGS_PRM_NAME), extraFlagsStr);
|
||||||
|
|
||||||
command = command.replace(makeVariable(CMD_LINE_PRM_NAME.toLowerCase()), commandName);
|
command = command.replace(makeVariable(CMD_LINE_PRM_NAME.toLowerCase()), commandName);
|
||||||
command = command.replace(makeVariable(FLAGS_PRM_NAME.toLowerCase()), flagsStr);
|
command = command.replace(makeVariable(FLAGS_PRM_NAME.toLowerCase()), flagsStr);
|
||||||
|
@ -78,6 +90,7 @@ public class ManagedCommandLineGenerator implements IManagedCommandLineGenerator
|
||||||
command = command.replace(makeVariable(OUTPUT_PREFIX_PRM_NAME.toLowerCase()), outputPrefix);
|
command = command.replace(makeVariable(OUTPUT_PREFIX_PRM_NAME.toLowerCase()), outputPrefix);
|
||||||
command = command.replace(makeVariable(OUTPUT_PRM_NAME.toLowerCase()), outputName);
|
command = command.replace(makeVariable(OUTPUT_PRM_NAME.toLowerCase()), outputName);
|
||||||
command = command.replace(makeVariable(INPUTS_PRM_NAME.toLowerCase()), inputsStr);
|
command = command.replace(makeVariable(INPUTS_PRM_NAME.toLowerCase()), inputsStr);
|
||||||
|
command = command.replace(makeVariable(EXTRA_FLAGS_PRM_NAME.toLowerCase()), extraFlagsStr);
|
||||||
|
|
||||||
return toManagedCommandLineInfo(tool, command.trim(), commandLinePattern, commandName, flags, outputFlag,
|
return toManagedCommandLineInfo(tool, command.trim(), commandLinePattern, commandName, flags, outputFlag,
|
||||||
outputPrefix, outputName, inputResources);
|
outputPrefix, outputName, inputResources);
|
||||||
|
@ -148,4 +161,8 @@ public class ManagedCommandLineGenerator implements IManagedCommandLineGenerator
|
||||||
}
|
}
|
||||||
return String.join(WHITESPACE, array);
|
return String.join(WHITESPACE, array);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String[] mergeArrays(String[]... arrays) {
|
||||||
|
return Stream.of(arrays).flatMap(Stream::of).toArray(String[]::new);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,6 +74,8 @@ import org.eclipse.cdt.managedbuilder.internal.macros.BuildfileMacroSubstitutor;
|
||||||
import org.eclipse.cdt.managedbuilder.internal.macros.FileContextData;
|
import org.eclipse.cdt.managedbuilder.internal.macros.FileContextData;
|
||||||
import org.eclipse.cdt.managedbuilder.internal.macros.IMacroContextInfo;
|
import org.eclipse.cdt.managedbuilder.internal.macros.IMacroContextInfo;
|
||||||
import org.eclipse.cdt.managedbuilder.internal.macros.IMacroContextInfoProvider;
|
import org.eclipse.cdt.managedbuilder.internal.macros.IMacroContextInfoProvider;
|
||||||
|
import org.eclipse.cdt.managedbuilder.internal.macros.OptionContextData;
|
||||||
|
import org.eclipse.cdt.managedbuilder.macros.BuildMacroException;
|
||||||
import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider;
|
import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider;
|
||||||
import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator;
|
import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator;
|
||||||
import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGeneratorType;
|
import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGeneratorType;
|
||||||
|
@ -103,7 +105,7 @@ import org.osgi.framework.Version;
|
||||||
public class Tool extends HoldsOptions
|
public class Tool extends HoldsOptions
|
||||||
implements ITool, IOptionCategory, IMatchKeyProvider<Tool>, IRealBuildObjectAssociation {
|
implements ITool, IOptionCategory, IMatchKeyProvider<Tool>, IRealBuildObjectAssociation {
|
||||||
|
|
||||||
public static final String DEFAULT_PATTERN = "${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}"; //$NON-NLS-1$
|
public static final String DEFAULT_PATTERN = "${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} ${EXTRA_FLAGS}"; //$NON-NLS-1$
|
||||||
public static final String DEFAULT_CBS_PATTERN = "${COMMAND}"; //$NON-NLS-1$
|
public static final String DEFAULT_CBS_PATTERN = "${COMMAND}"; //$NON-NLS-1$
|
||||||
|
|
||||||
//property name for holding the rebuild state
|
//property name for holding the rebuild state
|
||||||
|
@ -4251,4 +4253,102 @@ public class Tool extends HoldsOptions
|
||||||
// Tool does not have any ApplicabilityCalculator.
|
// Tool does not have any ApplicabilityCalculator.
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] getExtraFlags(int optionType) {
|
||||||
|
if (optionType != IOption.LIBRARIES && optionType != IOption.OBJECTS) {
|
||||||
|
// Early exit to avoid performance penalty
|
||||||
|
return new String[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector<String> flags = new Vector<>();
|
||||||
|
for (IOption option : getOptions()) {
|
||||||
|
try {
|
||||||
|
if (option.getValueType() != optionType) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check to see if the option has an applicability calculator
|
||||||
|
IOptionApplicability applicabilityCalculator = option.getApplicabilityCalculator();
|
||||||
|
|
||||||
|
if (applicabilityCalculator == null
|
||||||
|
|| applicabilityCalculator.isOptionUsedInCommandLine(this, this, option)) {
|
||||||
|
boolean generateDefaultCommand = true;
|
||||||
|
IOptionCommandGenerator commandGenerator = option.getCommandGenerator();
|
||||||
|
if (commandGenerator != null) {
|
||||||
|
SupplierBasedCdtVariableSubstitutor macroSubstitutor = new BuildfileMacroSubstitutor(null,
|
||||||
|
EMPTY_STRING, WHITE_SPACE);
|
||||||
|
IMacroContextInfoProvider provider = BuildMacroProvider.getDefault();
|
||||||
|
IMacroContextInfo info = provider.getMacroContextInfo(BuildMacroProvider.CONTEXT_OPTION,
|
||||||
|
new OptionContextData(option, this));
|
||||||
|
if (info != null) {
|
||||||
|
macroSubstitutor.setMacroContextInfo(info);
|
||||||
|
String command = commandGenerator.generateCommand(option, macroSubstitutor);
|
||||||
|
if (command != null) {
|
||||||
|
flags.add(command);
|
||||||
|
generateDefaultCommand = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (generateDefaultCommand) {
|
||||||
|
switch (optionType) {
|
||||||
|
case IOption.LIBRARIES: {
|
||||||
|
String command = option.getCommand();
|
||||||
|
String[] libs = option.getLibraries();
|
||||||
|
for (String lib : libs) {
|
||||||
|
try {
|
||||||
|
String resolved[] = ManagedBuildManager.getBuildMacroProvider()
|
||||||
|
.resolveStringListValueToMakefileFormat(lib, " ", //$NON-NLS-1$
|
||||||
|
" ", //$NON-NLS-1$
|
||||||
|
IBuildMacroProvider.CONTEXT_OPTION,
|
||||||
|
new OptionContextData(option, this));
|
||||||
|
if (resolved != null && resolved.length > 0) {
|
||||||
|
for (String string : resolved) {
|
||||||
|
if (!string.isEmpty()) {
|
||||||
|
flags.add(command + string);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (BuildMacroException e) {
|
||||||
|
// TODO: report error
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case IOption.OBJECTS: {
|
||||||
|
String userObjs[] = option.getUserObjects();
|
||||||
|
if (userObjs != null && userObjs.length > 0) {
|
||||||
|
for (String userObj : userObjs) {
|
||||||
|
try {
|
||||||
|
String resolved[] = ManagedBuildManager.getBuildMacroProvider()
|
||||||
|
.resolveStringListValueToMakefileFormat(userObj, "", //$NON-NLS-1$
|
||||||
|
" ", //$NON-NLS-1$
|
||||||
|
IBuildMacroProvider.CONTEXT_OPTION,
|
||||||
|
new OptionContextData(option, this));
|
||||||
|
if (resolved != null && resolved.length > 0) {
|
||||||
|
flags.addAll(Arrays.asList(resolved));
|
||||||
|
}
|
||||||
|
} catch (BuildMacroException e) {
|
||||||
|
// TODO: report error
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
// Cannot happen
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (BuildException | CdtVariableException e) {
|
||||||
|
// TODO: report error
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return flags.toArray(new String[flags.size()]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,8 @@ import java.util.TreeSet;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
import org.eclipse.cdt.core.CCorePlugin;
|
||||||
import org.eclipse.cdt.core.settings.model.CSourceEntry;
|
import org.eclipse.cdt.core.settings.model.CSourceEntry;
|
||||||
|
@ -972,12 +974,6 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
|
||||||
populateTopMakefile(makefileHandle, true);
|
populateTopMakefile(makefileHandle, true);
|
||||||
checkCancel();
|
checkCancel();
|
||||||
|
|
||||||
// Now finish up by adding all the object files
|
|
||||||
IPath objFilePath = topBuildDir.append(OBJECTS_MAKFILE);
|
|
||||||
IFile objsFileHandle = createFile(objFilePath);
|
|
||||||
populateObjectsMakefile(objsFileHandle);
|
|
||||||
checkCancel();
|
|
||||||
|
|
||||||
// How did we do
|
// How did we do
|
||||||
if (!getInvalidDirList().isEmpty()) {
|
if (!getInvalidDirList().isEmpty()) {
|
||||||
status = new MultiStatus(ManagedBuilderCorePlugin.getUniqueIdentifier(), IStatus.WARNING, "", //$NON-NLS-1$
|
status = new MultiStatus(ManagedBuilderCorePlugin.getUniqueIdentifier(), IStatus.WARNING, "", //$NON-NLS-1$
|
||||||
|
@ -1029,67 +1025,6 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
|
||||||
save(makeBuf, modMakefile);
|
save(makeBuf, modMakefile);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* The makefile generator generates a Macro for each type of output, other than final artifact,
|
|
||||||
* created by the build.
|
|
||||||
*
|
|
||||||
* @param fileHandle The file that should be populated with the output
|
|
||||||
*/
|
|
||||||
protected void populateObjectsMakefile(IFile fileHandle) throws CoreException {
|
|
||||||
|
|
||||||
// Master list of "object" dependencies, i.e. dependencies between input files and output files.
|
|
||||||
StringBuffer macroBuffer = new StringBuffer();
|
|
||||||
List<String> valueList;
|
|
||||||
macroBuffer.append(addGenericHeader());
|
|
||||||
|
|
||||||
// Map of macro names (String) to its definition (List of Strings)
|
|
||||||
HashMap<String, List<String>> outputMacros = new HashMap<>();
|
|
||||||
|
|
||||||
// Add the predefined LIBS, USER_OBJS macros
|
|
||||||
|
|
||||||
// Add the libraries this project depends on
|
|
||||||
valueList = new ArrayList<>();
|
|
||||||
String[] libs = config.getLibs(buildTargetExt);
|
|
||||||
for (String lib : libs) {
|
|
||||||
valueList.add(lib);
|
|
||||||
}
|
|
||||||
outputMacros.put("LIBS", valueList); //$NON-NLS-1$
|
|
||||||
|
|
||||||
// Add the extra user-specified objects
|
|
||||||
valueList = new ArrayList<>();
|
|
||||||
String[] userObjs = config.getUserObjects(buildTargetExt);
|
|
||||||
for (String obj : userObjs) {
|
|
||||||
valueList.add(obj);
|
|
||||||
}
|
|
||||||
outputMacros.put("USER_OBJS", valueList); //$NON-NLS-1$
|
|
||||||
|
|
||||||
// Write every macro to the file
|
|
||||||
for (Entry<String, List<String>> entry : outputMacros.entrySet()) {
|
|
||||||
macroBuffer.append(entry.getKey()).append(" :="); //$NON-NLS-1$
|
|
||||||
valueList = entry.getValue();
|
|
||||||
for (String path : valueList) {
|
|
||||||
// These macros will also be used within commands.
|
|
||||||
// Make all the slashes go forward so they aren't
|
|
||||||
// interpreted as escapes and get lost.
|
|
||||||
// See https://bugs.eclipse.org/163672.
|
|
||||||
path = path.replace('\\', '/');
|
|
||||||
|
|
||||||
path = ensurePathIsGNUMakeTargetRuleCompatibleSyntax(path);
|
|
||||||
|
|
||||||
macroBuffer.append(WHITESPACE);
|
|
||||||
macroBuffer.append(path);
|
|
||||||
}
|
|
||||||
// terminate the macro definition line
|
|
||||||
macroBuffer.append(NEWLINE);
|
|
||||||
// leave a blank line before the next macro
|
|
||||||
macroBuffer.append(NEWLINE);
|
|
||||||
}
|
|
||||||
|
|
||||||
// For now, just save the buffer that was populated when the rules were created
|
|
||||||
save(macroBuffer, fileHandle);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void populateSourcesMakefile(IFile fileHandle) throws CoreException {
|
protected void populateSourcesMakefile(IFile fileHandle) throws CoreException {
|
||||||
// Add the comment
|
// Add the comment
|
||||||
StringBuffer buffer = addGenericHeader();
|
StringBuffer buffer = addGenericHeader();
|
||||||
|
@ -1268,8 +1203,6 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
|
||||||
buffer.append(MODFILE_NAME).append(NEWLINE);
|
buffer.append(MODFILE_NAME).append(NEWLINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer.append("-include objects.mk").append(NEWLINE).append(NEWLINE); //$NON-NLS-1$
|
|
||||||
|
|
||||||
// Include generated dependency makefiles if non-empty AND a "clean" has not been requested
|
// Include generated dependency makefiles if non-empty AND a "clean" has not been requested
|
||||||
if (!buildDepVars.isEmpty()) {
|
if (!buildDepVars.isEmpty()) {
|
||||||
buffer.append("ifneq ($(MAKECMDGOALS),clean)").append(NEWLINE); //$NON-NLS-1$
|
buffer.append("ifneq ($(MAKECMDGOALS),clean)").append(NEWLINE); //$NON-NLS-1$
|
||||||
|
@ -1763,9 +1696,16 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
|
||||||
}
|
}
|
||||||
buildRule += calculatedDependencies;
|
buildRule += calculatedDependencies;
|
||||||
buildRule += WHITESPACE + MAKEFILE_NAME; // makefile itself
|
buildRule += WHITESPACE + MAKEFILE_NAME; // makefile itself
|
||||||
buildRule += WHITESPACE + OBJECTS_MAKFILE; // objects.mk
|
|
||||||
buildRule += WHITESPACE + "$(OPTIONAL_TOOL_DEPS)"; //$NON-NLS-1$ // Optional dep to generated makefile extension files
|
buildRule += WHITESPACE + "$(OPTIONAL_TOOL_DEPS)"; //$NON-NLS-1$ // Optional dep to generated makefile extension files
|
||||||
|
|
||||||
|
// Depend on additional object files for the tool, if any
|
||||||
|
String[] additionalObjects = tool.getExtraFlags(IOption.OBJECTS);
|
||||||
|
if (additionalObjects.length > 0) {
|
||||||
|
buildRule += WHITESPACE + Stream.of(additionalObjects) //
|
||||||
|
.map(this::ensurePathIsGNUMakeTargetRuleCompatibleSyntax) //
|
||||||
|
.collect(Collectors.joining(WHITESPACE));
|
||||||
|
}
|
||||||
|
|
||||||
// We can't have duplicates in a makefile
|
// We can't have duplicates in a makefile
|
||||||
if (getRuleList().contains(buildRule)) {
|
if (getRuleList().contains(buildRule)) {
|
||||||
} else {
|
} else {
|
||||||
|
@ -1797,8 +1737,17 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
|
||||||
}
|
}
|
||||||
String[] cmdInputs = inputs.toArray(new String[inputs.size()]);
|
String[] cmdInputs = inputs.toArray(new String[inputs.size()]);
|
||||||
IManagedCommandLineGenerator gen = tool.getCommandLineGenerator();
|
IManagedCommandLineGenerator gen = tool.getCommandLineGenerator();
|
||||||
|
String commandLinePattern = tool.getCommandLinePattern();
|
||||||
|
if (!commandLinePattern.contains("${EXTRA_FLAGS}")) { //$NON-NLS-1$
|
||||||
|
String[] objs = tool.getExtraFlags(IOption.OBJECTS);
|
||||||
|
String[] libs = tool.getExtraFlags(IOption.LIBRARIES);
|
||||||
|
if (objs.length > 0 || libs.length > 0) {
|
||||||
|
// Tool command line pattern would expect legacy "$(USER_OBJS)" or "$(LIBS)" make-symbols to be appended.
|
||||||
|
commandLinePattern = commandLinePattern + " ${EXTRA_FLAGS}"; //$NON-NLS-1$
|
||||||
|
}
|
||||||
|
}
|
||||||
IManagedCommandLineInfo cmdLInfo = gen.generateCommandLineInfo(tool, command, flags, outflag, outputPrefix,
|
IManagedCommandLineInfo cmdLInfo = gen.generateCommandLineInfo(tool, command, flags, outflag, outputPrefix,
|
||||||
primaryOutputs, cmdInputs, tool.getCommandLinePattern());
|
primaryOutputs, cmdInputs, commandLinePattern);
|
||||||
|
|
||||||
// The command to build
|
// The command to build
|
||||||
String buildCmd = null;
|
String buildCmd = null;
|
||||||
|
|
Loading…
Add table
Reference in a new issue