[PATCH 2/2] Add a make rule (creator-files) that creates files for using Qt Creator

Thiago Macieira thiago at macieira.org
Thu May 9 12:18:02 PDT 2013


Qt Creator cannot import Subsurface directly because our buildsystem
is not any of the three that it understands (qmake, cmake,
autotools). So, instead, we can create the files Creator uses for
"Other Project" projects.

The files are:
 - subsurface.config:   the #defines from the command line (-D args)
 - subsurface.creator:  an XDG Desktop-style file with Creator settings
 - subsurface.files:    the list of source and header files
 - subsurface.includes: the include paths (-I args)

They are also added to .gitignore, alongside the *.user file that
Creator uses to store per-user settings (editor configuration).

Signed-off-by: Thiago Macieira <thiago at macieira.org>
---
 .gitignore |  5 +++++
 Rules.mk   | 16 ++++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/.gitignore b/.gitignore
index 5a90c6d..0d48849 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,8 @@ packaging/windows/subsurface.nsi
 packaging/macos/Info.plist
 config.cache
 *.qrc.cpp
+/subsurface.config
+/subsurface.creator
+/subsurface.creator.user
+/subsurface.files
+/subsurface.includes
diff --git a/Rules.mk b/Rules.mk
index 8dc95c0..c0ef1ee 100644
--- a/Rules.mk
+++ b/Rules.mk
@@ -38,6 +38,9 @@ MOC_OBJS = $(HEADERS_NEEDING_MOC:.h=.moc.o)
 
 ALL_OBJS = $(OBJS) $(MOC_OBJS)
 
+# Files for using Qt Creator
+CREATOR_FILES = subsurface.config subsurface.creator subsurface.files subsurface.includes
+
 all: $(NAME)
 
 $(NAME): gen_version_file $(ALL_OBJS) $(MSGOBJS) $(INFOPLIST)
@@ -219,6 +222,19 @@ confclean: clean
 	rm -rf .dep
 
 distclean: confclean
+	rm -f $(CREATOR_FILES)
+
+.PHONY: creator-files
+creator-files: $(CREATOR_FILES)
+subsurface.files: Makefile $(CONFIGFILE)
+	echo $(wildcard *.h) $(HEADERS) $(SOURCES) | tr ' ' '\n' | sort | uniq > subsurface.files
+subsurface.config: Makefile $(CONFIGFILE)
+	echo $(patsubst -D%,%,$(filter -D%, $(CXXFLAGS) $(CFLAGS) $(EXTRA_FLAGS))) | tr ' ' '\n' | sort | uniq > subsurface.config
+subsurface.includes: Makefile $(CONFIGFILE)
+	echo $$PWD > subsurface.includes
+	echo $(patsubst -I%,%,$(filter -I%, $(CXXFLAGS) $(CFLAGS) $(EXTRA_FLAGS))) | tr ' ' '\n' | sort | uniq >> subsurface.includes
+subsurface.creator:
+	echo '[General]' > subsurface.creator
 
 ifneq ($(CONFIGURED)$(CONFIGURING),)
 .dep/%.o.dep: %.cpp
-- 
1.7.11.7



More information about the subsurface mailing list