diff --git a/README.md b/README.md
index c1d75d6c3..70f61d650 100644
--- a/README.md
+++ b/README.md
@@ -57,6 +57,23 @@ See [NFD.h](src/include/nfd.h) for more options.
## Building ##
+NFD uses [Premake5](https://premake.github.io/download.html) to generate Makefiles and IDE project files. The generated project files are checked in under `build/` so you don't have to download and use Premake in most cases.
+
+Previously, NFD used SCons to build. It still works, but is now deprecated; updates to it are discouraged. Opt to use the native build system where possible.
+
+`nfd.a` will be built for release builds, and `nfd_d.a` will be built for debug builds.
+
+### Makefiles ###
+
+The makefile offers four options:
+
+ make config=release_x86
+ make config=release_x64
+ make config=debug_x86
+ make config=debug_x64
+
+### SCons build (deprecated) ###
+
NFD uses [SCons](http://www.scons.org) for cross-platform builds. After installing SCons, build it with:
cd src
diff --git a/build/gmake/Makefile b/build/gmake/Makefile
new file mode 100644
index 000000000..b81c3097b
--- /dev/null
+++ b/build/gmake/Makefile
@@ -0,0 +1,91 @@
+# GNU Make workspace makefile autogenerated by Premake
+
+.NOTPARALLEL:
+
+ifndef config
+ config=release_x64
+endif
+
+ifndef verbose
+ SILENT = @
+endif
+
+ifeq ($(config),release_x64)
+ nfd_config = release_x64
+ test_opendialog_config = release_x64
+ test_opendialogmultiple_config = release_x64
+ test_savedialog_config = release_x64
+endif
+ifeq ($(config),release_x86)
+ nfd_config = release_x86
+ test_opendialog_config = release_x86
+ test_opendialogmultiple_config = release_x86
+ test_savedialog_config = release_x86
+endif
+ifeq ($(config),debug_x64)
+ nfd_config = debug_x64
+ test_opendialog_config = debug_x64
+ test_opendialogmultiple_config = debug_x64
+ test_savedialog_config = debug_x64
+endif
+ifeq ($(config),debug_x86)
+ nfd_config = debug_x86
+ test_opendialog_config = debug_x86
+ test_opendialogmultiple_config = debug_x86
+ test_savedialog_config = debug_x86
+endif
+
+PROJECTS := nfd test_opendialog test_opendialogmultiple test_savedialog
+
+.PHONY: all clean help $(PROJECTS)
+
+all: $(PROJECTS)
+
+nfd:
+ifneq (,$(nfd_config))
+ @echo "==== Building nfd ($(nfd_config)) ===="
+ @${MAKE} --no-print-directory -C . -f nfd.make config=$(nfd_config)
+endif
+
+test_opendialog: nfd
+ifneq (,$(test_opendialog_config))
+ @echo "==== Building test_opendialog ($(test_opendialog_config)) ===="
+ @${MAKE} --no-print-directory -C . -f test_opendialog.make config=$(test_opendialog_config)
+endif
+
+test_opendialogmultiple: nfd
+ifneq (,$(test_opendialogmultiple_config))
+ @echo "==== Building test_opendialogmultiple ($(test_opendialogmultiple_config)) ===="
+ @${MAKE} --no-print-directory -C . -f test_opendialogmultiple.make config=$(test_opendialogmultiple_config)
+endif
+
+test_savedialog: nfd
+ifneq (,$(test_savedialog_config))
+ @echo "==== Building test_savedialog ($(test_savedialog_config)) ===="
+ @${MAKE} --no-print-directory -C . -f test_savedialog.make config=$(test_savedialog_config)
+endif
+
+clean:
+ @${MAKE} --no-print-directory -C . -f nfd.make clean
+ @${MAKE} --no-print-directory -C . -f test_opendialog.make clean
+ @${MAKE} --no-print-directory -C . -f test_opendialogmultiple.make clean
+ @${MAKE} --no-print-directory -C . -f test_savedialog.make clean
+
+help:
+ @echo "Usage: make [config=name] [target]"
+ @echo ""
+ @echo "CONFIGURATIONS:"
+ @echo " release_x64"
+ @echo " release_x86"
+ @echo " debug_x64"
+ @echo " debug_x86"
+ @echo ""
+ @echo "TARGETS:"
+ @echo " all (default)"
+ @echo " clean"
+ @echo " nfd"
+ @echo " test_opendialog"
+ @echo " test_opendialogmultiple"
+ @echo " test_savedialog"
+ @echo ""
+ @echo "For more information, see http://industriousone.com/premake/quick-start"
\ No newline at end of file
diff --git a/build/gmake/nfd.make b/build/gmake/nfd.make
new file mode 100644
index 000000000..4f83a790e
--- /dev/null
+++ b/build/gmake/nfd.make
@@ -0,0 +1,191 @@
+# GNU Make project makefile autogenerated by Premake
+
+ifndef config
+ config=release_x64
+endif
+
+ifndef verbose
+ SILENT = @
+endif
+
+.PHONY: clean prebuild prelink
+
+ifeq ($(config),release_x64)
+ RESCOMP = windres
+ TARGETDIR = ../lib/Release/x64
+ TARGET = $(TARGETDIR)/libnfd.a
+ OBJDIR = ../obj/x64/Release/nfd
+ DEFINES += -DNDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m64 -O2
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS +=
+ LDDEPS +=
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib64 -m64 -Wl,-x
+ LINKCMD = $(AR) -rcs "$@" $(OBJECTS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+ifeq ($(config),release_x86)
+ RESCOMP = windres
+ TARGETDIR = ../lib/Release/x86
+ TARGET = $(TARGETDIR)/libnfd.a
+ OBJDIR = ../obj/x86/Release/nfd
+ DEFINES += -DNDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m32 -O2
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS +=
+ LDDEPS +=
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib32 -m32 -Wl,-x
+ LINKCMD = $(AR) -rcs "$@" $(OBJECTS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+ifeq ($(config),debug_x64)
+ RESCOMP = windres
+ TARGETDIR = ../lib/Debug/x64
+ TARGET = $(TARGETDIR)/libnfd_d.a
+ OBJDIR = ../obj/x64/Debug/nfd
+ DEFINES += -DDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m64 -g
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS +=
+ LDDEPS +=
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib64 -m64
+ LINKCMD = $(AR) -rcs "$@" $(OBJECTS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+ifeq ($(config),debug_x86)
+ RESCOMP = windres
+ TARGETDIR = ../lib/Debug/x86
+ TARGET = $(TARGETDIR)/libnfd_d.a
+ OBJDIR = ../obj/x86/Debug/nfd
+ DEFINES += -DDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m32 -g
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS +=
+ LDDEPS +=
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib32 -m32
+ LINKCMD = $(AR) -rcs "$@" $(OBJECTS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+OBJECTS := \
+ $(OBJDIR)/nfd_cocoa.o \
+ $(OBJDIR)/nfd_common.o \
+
+RESOURCES := \
+
+CUSTOMFILES := \
+
+SHELLTYPE := msdos
+ifeq (,$(ComSpec)$(COMSPEC))
+ SHELLTYPE := posix
+endif
+ifeq (/bin,$(findstring /bin,$(SHELL)))
+ SHELLTYPE := posix
+endif
+
+$(TARGET): $(GCH) ${CUSTOMFILES} $(OBJECTS) $(LDDEPS) $(RESOURCES)
+ @echo Linking nfd
+ $(SILENT) $(LINKCMD)
+ $(POSTBUILDCMDS)
+
+$(TARGETDIR):
+ @echo Creating $(TARGETDIR)
+ifeq (posix,$(SHELLTYPE))
+ $(SILENT) mkdir -p $(TARGETDIR)
+else
+ $(SILENT) mkdir $(subst /,\\,$(TARGETDIR))
+endif
+
+$(OBJDIR):
+ @echo Creating $(OBJDIR)
+ifeq (posix,$(SHELLTYPE))
+ $(SILENT) mkdir -p $(OBJDIR)
+else
+ $(SILENT) mkdir $(subst /,\\,$(OBJDIR))
+endif
+
+clean:
+ @echo Cleaning nfd
+ifeq (posix,$(SHELLTYPE))
+ $(SILENT) rm -f $(TARGET)
+ $(SILENT) rm -rf $(OBJDIR)
+else
+ $(SILENT) if exist $(subst /,\\,$(TARGET)) del $(subst /,\\,$(TARGET))
+ $(SILENT) if exist $(subst /,\\,$(OBJDIR)) rmdir /s /q $(subst /,\\,$(OBJDIR))
+endif
+
+prebuild:
+ $(PREBUILDCMDS)
+
+prelink:
+ $(PRELINKCMDS)
+
+ifneq (,$(PCH))
+$(OBJECTS): $(GCH) $(PCH)
+$(GCH): $(PCH)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) -x c-header $(ALL_CFLAGS) -o "$@" -MF "$(@:%.gch=%.d)" -c "$<"
+endif
+
+$(OBJDIR)/nfd_cocoa.o: ../../src/nfd_cocoa.m
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
+$(OBJDIR)/nfd_common.o: ../../src/nfd_common.c
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
+ifneq (,$(PCH))
+ -include $(OBJDIR)/$(notdir $(PCH)).d
+endif
\ No newline at end of file
diff --git a/build/gmake/test_opendialog.make b/build/gmake/test_opendialog.make
new file mode 100644
index 000000000..44d15cdbd
--- /dev/null
+++ b/build/gmake/test_opendialog.make
@@ -0,0 +1,187 @@
+# GNU Make project makefile autogenerated by Premake
+
+ifndef config
+ config=release_x64
+endif
+
+ifndef verbose
+ SILENT = @
+endif
+
+.PHONY: clean prebuild prelink
+
+ifeq ($(config),release_x64)
+ RESCOMP = windres
+ TARGETDIR = ../bin
+ TARGET = $(TARGETDIR)/test_opendialog
+ OBJDIR = ../obj/x64/Release/test_opendialog
+ DEFINES += -DNDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m64 -O2
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS += ../lib/Release/x64/libnfd.a -framework Foundation -framework AppKit
+ LDDEPS += ../lib/Release/x64/libnfd.a
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib64 -L../lib/Release/x64 -m64 -Wl,-x
+ LINKCMD = $(CC) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+ifeq ($(config),release_x86)
+ RESCOMP = windres
+ TARGETDIR = ../bin
+ TARGET = $(TARGETDIR)/test_opendialog
+ OBJDIR = ../obj/x86/Release/test_opendialog
+ DEFINES += -DNDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m32 -O2
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS += ../lib/Release/x86/libnfd.a -framework Foundation -framework AppKit
+ LDDEPS += ../lib/Release/x86/libnfd.a
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib32 -L../lib/Release/x86 -m32 -Wl,-x
+ LINKCMD = $(CC) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+ifeq ($(config),debug_x64)
+ RESCOMP = windres
+ TARGETDIR = ../bin
+ TARGET = $(TARGETDIR)/test_opendialog_d
+ OBJDIR = ../obj/x64/Debug/test_opendialog
+ DEFINES += -DDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m64 -g
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS += -lnfd_d -framework Foundation -framework AppKit
+ LDDEPS +=
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib64 -L../lib/Debug/x64 -m64
+ LINKCMD = $(CC) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+ifeq ($(config),debug_x86)
+ RESCOMP = windres
+ TARGETDIR = ../bin
+ TARGET = $(TARGETDIR)/test_opendialog_d
+ OBJDIR = ../obj/x86/Debug/test_opendialog
+ DEFINES += -DDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m32 -g
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS += -lnfd_d -framework Foundation -framework AppKit
+ LDDEPS +=
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib32 -L../lib/Debug/x86 -m32
+ LINKCMD = $(CC) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+OBJECTS := \
+ $(OBJDIR)/test_opendialog.o \
+
+RESOURCES := \
+
+CUSTOMFILES := \
+
+SHELLTYPE := msdos
+ifeq (,$(ComSpec)$(COMSPEC))
+ SHELLTYPE := posix
+endif
+ifeq (/bin,$(findstring /bin,$(SHELL)))
+ SHELLTYPE := posix
+endif
+
+$(TARGET): $(GCH) ${CUSTOMFILES} $(OBJECTS) $(LDDEPS) $(RESOURCES)
+ @echo Linking test_opendialog
+ $(SILENT) $(LINKCMD)
+ $(POSTBUILDCMDS)
+
+$(TARGETDIR):
+ @echo Creating $(TARGETDIR)
+ifeq (posix,$(SHELLTYPE))
+ $(SILENT) mkdir -p $(TARGETDIR)
+else
+ $(SILENT) mkdir $(subst /,\\,$(TARGETDIR))
+endif
+
+$(OBJDIR):
+ @echo Creating $(OBJDIR)
+ifeq (posix,$(SHELLTYPE))
+ $(SILENT) mkdir -p $(OBJDIR)
+else
+ $(SILENT) mkdir $(subst /,\\,$(OBJDIR))
+endif
+
+clean:
+ @echo Cleaning test_opendialog
+ifeq (posix,$(SHELLTYPE))
+ $(SILENT) rm -f $(TARGET)
+ $(SILENT) rm -rf $(OBJDIR)
+else
+ $(SILENT) if exist $(subst /,\\,$(TARGET)) del $(subst /,\\,$(TARGET))
+ $(SILENT) if exist $(subst /,\\,$(OBJDIR)) rmdir /s /q $(subst /,\\,$(OBJDIR))
+endif
+
+prebuild:
+ $(PREBUILDCMDS)
+
+prelink:
+ $(PRELINKCMDS)
+
+ifneq (,$(PCH))
+$(OBJECTS): $(GCH) $(PCH)
+$(GCH): $(PCH)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) -x c-header $(ALL_CFLAGS) -o "$@" -MF "$(@:%.gch=%.d)" -c "$<"
+endif
+
+$(OBJDIR)/test_opendialog.o: ../../test/test_opendialog.c
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
+ifneq (,$(PCH))
+ -include $(OBJDIR)/$(notdir $(PCH)).d
+endif
\ No newline at end of file
diff --git a/build/gmake/test_opendialogmultiple.make b/build/gmake/test_opendialogmultiple.make
new file mode 100644
index 000000000..6253a1b5b
--- /dev/null
+++ b/build/gmake/test_opendialogmultiple.make
@@ -0,0 +1,187 @@
+# GNU Make project makefile autogenerated by Premake
+
+ifndef config
+ config=release_x64
+endif
+
+ifndef verbose
+ SILENT = @
+endif
+
+.PHONY: clean prebuild prelink
+
+ifeq ($(config),release_x64)
+ RESCOMP = windres
+ TARGETDIR = ../bin
+ TARGET = $(TARGETDIR)/test_opendialogmultiple
+ OBJDIR = ../obj/x64/Release/test_opendialogmultiple
+ DEFINES += -DNDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m64 -O2
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS += ../lib/Release/x64/libnfd.a -framework Foundation -framework AppKit
+ LDDEPS += ../lib/Release/x64/libnfd.a
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib64 -L../lib/Release/x64 -m64 -Wl,-x
+ LINKCMD = $(CC) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+ifeq ($(config),release_x86)
+ RESCOMP = windres
+ TARGETDIR = ../bin
+ TARGET = $(TARGETDIR)/test_opendialogmultiple
+ OBJDIR = ../obj/x86/Release/test_opendialogmultiple
+ DEFINES += -DNDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m32 -O2
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS += ../lib/Release/x86/libnfd.a -framework Foundation -framework AppKit
+ LDDEPS += ../lib/Release/x86/libnfd.a
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib32 -L../lib/Release/x86 -m32 -Wl,-x
+ LINKCMD = $(CC) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+ifeq ($(config),debug_x64)
+ RESCOMP = windres
+ TARGETDIR = ../bin
+ TARGET = $(TARGETDIR)/test_opendialogmultiple_d
+ OBJDIR = ../obj/x64/Debug/test_opendialogmultiple
+ DEFINES += -DDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m64 -g
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS += -lnfd_d -framework Foundation -framework AppKit
+ LDDEPS +=
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib64 -L../lib/Debug/x64 -m64
+ LINKCMD = $(CC) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+ifeq ($(config),debug_x86)
+ RESCOMP = windres
+ TARGETDIR = ../bin
+ TARGET = $(TARGETDIR)/test_opendialogmultiple_d
+ OBJDIR = ../obj/x86/Debug/test_opendialogmultiple
+ DEFINES += -DDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m32 -g
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS += -lnfd_d -framework Foundation -framework AppKit
+ LDDEPS +=
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib32 -L../lib/Debug/x86 -m32
+ LINKCMD = $(CC) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+OBJECTS := \
+ $(OBJDIR)/test_opendialogmultiple.o \
+
+RESOURCES := \
+
+CUSTOMFILES := \
+
+SHELLTYPE := msdos
+ifeq (,$(ComSpec)$(COMSPEC))
+ SHELLTYPE := posix
+endif
+ifeq (/bin,$(findstring /bin,$(SHELL)))
+ SHELLTYPE := posix
+endif
+
+$(TARGET): $(GCH) ${CUSTOMFILES} $(OBJECTS) $(LDDEPS) $(RESOURCES)
+ @echo Linking test_opendialogmultiple
+ $(SILENT) $(LINKCMD)
+ $(POSTBUILDCMDS)
+
+$(TARGETDIR):
+ @echo Creating $(TARGETDIR)
+ifeq (posix,$(SHELLTYPE))
+ $(SILENT) mkdir -p $(TARGETDIR)
+else
+ $(SILENT) mkdir $(subst /,\\,$(TARGETDIR))
+endif
+
+$(OBJDIR):
+ @echo Creating $(OBJDIR)
+ifeq (posix,$(SHELLTYPE))
+ $(SILENT) mkdir -p $(OBJDIR)
+else
+ $(SILENT) mkdir $(subst /,\\,$(OBJDIR))
+endif
+
+clean:
+ @echo Cleaning test_opendialogmultiple
+ifeq (posix,$(SHELLTYPE))
+ $(SILENT) rm -f $(TARGET)
+ $(SILENT) rm -rf $(OBJDIR)
+else
+ $(SILENT) if exist $(subst /,\\,$(TARGET)) del $(subst /,\\,$(TARGET))
+ $(SILENT) if exist $(subst /,\\,$(OBJDIR)) rmdir /s /q $(subst /,\\,$(OBJDIR))
+endif
+
+prebuild:
+ $(PREBUILDCMDS)
+
+prelink:
+ $(PRELINKCMDS)
+
+ifneq (,$(PCH))
+$(OBJECTS): $(GCH) $(PCH)
+$(GCH): $(PCH)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) -x c-header $(ALL_CFLAGS) -o "$@" -MF "$(@:%.gch=%.d)" -c "$<"
+endif
+
+$(OBJDIR)/test_opendialogmultiple.o: ../../test/test_opendialogmultiple.c
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
+ifneq (,$(PCH))
+ -include $(OBJDIR)/$(notdir $(PCH)).d
+endif
\ No newline at end of file
diff --git a/build/gmake/test_savedialog.make b/build/gmake/test_savedialog.make
new file mode 100644
index 000000000..c4063c765
--- /dev/null
+++ b/build/gmake/test_savedialog.make
@@ -0,0 +1,187 @@
+# GNU Make project makefile autogenerated by Premake
+
+ifndef config
+ config=release_x64
+endif
+
+ifndef verbose
+ SILENT = @
+endif
+
+.PHONY: clean prebuild prelink
+
+ifeq ($(config),release_x64)
+ RESCOMP = windres
+ TARGETDIR = ../bin
+ TARGET = $(TARGETDIR)/test_savedialog
+ OBJDIR = ../obj/x64/Release/test_savedialog
+ DEFINES += -DNDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m64 -O2
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS += ../lib/Release/x64/libnfd.a -framework Foundation -framework AppKit
+ LDDEPS += ../lib/Release/x64/libnfd.a
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib64 -L../lib/Release/x64 -m64 -Wl,-x
+ LINKCMD = $(CC) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+ifeq ($(config),release_x86)
+ RESCOMP = windres
+ TARGETDIR = ../bin
+ TARGET = $(TARGETDIR)/test_savedialog
+ OBJDIR = ../obj/x86/Release/test_savedialog
+ DEFINES += -DNDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m32 -O2
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS += ../lib/Release/x86/libnfd.a -framework Foundation -framework AppKit
+ LDDEPS += ../lib/Release/x86/libnfd.a
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib32 -L../lib/Release/x86 -m32 -Wl,-x
+ LINKCMD = $(CC) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+ifeq ($(config),debug_x64)
+ RESCOMP = windres
+ TARGETDIR = ../bin
+ TARGET = $(TARGETDIR)/test_savedialog_d
+ OBJDIR = ../obj/x64/Debug/test_savedialog
+ DEFINES += -DDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m64 -g
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS += -lnfd_d -framework Foundation -framework AppKit
+ LDDEPS +=
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib64 -L../lib/Debug/x64 -m64
+ LINKCMD = $(CC) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+ifeq ($(config),debug_x86)
+ RESCOMP = windres
+ TARGETDIR = ../bin
+ TARGET = $(TARGETDIR)/test_savedialog_d
+ OBJDIR = ../obj/x86/Debug/test_savedialog
+ DEFINES += -DDEBUG
+ INCLUDES += -I../../src/include
+ FORCE_INCLUDE +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m32 -g
+ ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CFLAGS)
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ LIBS += -lnfd_d -framework Foundation -framework AppKit
+ LDDEPS +=
+ ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib32 -L../lib/Debug/x86 -m32
+ LINKCMD = $(CC) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS)
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+all: $(TARGETDIR) $(OBJDIR) prebuild prelink $(TARGET)
+ @:
+
+endif
+
+OBJECTS := \
+ $(OBJDIR)/test_savedialog.o \
+
+RESOURCES := \
+
+CUSTOMFILES := \
+
+SHELLTYPE := msdos
+ifeq (,$(ComSpec)$(COMSPEC))
+ SHELLTYPE := posix
+endif
+ifeq (/bin,$(findstring /bin,$(SHELL)))
+ SHELLTYPE := posix
+endif
+
+$(TARGET): $(GCH) ${CUSTOMFILES} $(OBJECTS) $(LDDEPS) $(RESOURCES)
+ @echo Linking test_savedialog
+ $(SILENT) $(LINKCMD)
+ $(POSTBUILDCMDS)
+
+$(TARGETDIR):
+ @echo Creating $(TARGETDIR)
+ifeq (posix,$(SHELLTYPE))
+ $(SILENT) mkdir -p $(TARGETDIR)
+else
+ $(SILENT) mkdir $(subst /,\\,$(TARGETDIR))
+endif
+
+$(OBJDIR):
+ @echo Creating $(OBJDIR)
+ifeq (posix,$(SHELLTYPE))
+ $(SILENT) mkdir -p $(OBJDIR)
+else
+ $(SILENT) mkdir $(subst /,\\,$(OBJDIR))
+endif
+
+clean:
+ @echo Cleaning test_savedialog
+ifeq (posix,$(SHELLTYPE))
+ $(SILENT) rm -f $(TARGET)
+ $(SILENT) rm -rf $(OBJDIR)
+else
+ $(SILENT) if exist $(subst /,\\,$(TARGET)) del $(subst /,\\,$(TARGET))
+ $(SILENT) if exist $(subst /,\\,$(OBJDIR)) rmdir /s /q $(subst /,\\,$(OBJDIR))
+endif
+
+prebuild:
+ $(PREBUILDCMDS)
+
+prelink:
+ $(PRELINKCMDS)
+
+ifneq (,$(PCH))
+$(OBJECTS): $(GCH) $(PCH)
+$(GCH): $(PCH)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) -x c-header $(ALL_CFLAGS) -o "$@" -MF "$(@:%.gch=%.d)" -c "$<"
+endif
+
+$(OBJDIR)/test_savedialog.o: ../../test/test_savedialog.c
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
+ifneq (,$(PCH))
+ -include $(OBJDIR)/$(notdir $(PCH)).d
+endif
\ No newline at end of file
diff --git a/build/premake5.lua b/build/premake5.lua
index 7eefcdb35..1fafa4b3c 100644
--- a/build/premake5.lua
+++ b/build/premake5.lua
@@ -5,9 +5,14 @@
-- so you don't need to worry about the extra step when building.
workspace "NativeFileDialog"
- local root_dir = path.join(path.getdirectory(_SCRIPT),"..".."/")
- configurations { "Debug", "Release" }
- platforms {"x86", "x64"}
+ -- these dir specifications assume the generated files have been moved
+ -- into a subdirectory. ex: $root/build/makefile
+ local root_dir = path.join(path.getdirectory(_SCRIPT),"../../")
+ local build_dir = path.join(root_dir,"build/")
+ configurations { "Release", "Debug" }
+ platforms {"x64", "x86"}
+
+ objdir(path.join(build_dir, "obj/"))
-- architecture filters
filter "configurations:x86"
@@ -19,7 +24,7 @@ workspace "NativeFileDialog"
-- debug/release filters
filter "configurations:Debug"
defines {"DEBUG"}
- flags {"Symbols"}
+ symbols "On"
targetsuffix "_d"
filter "configurations:Release"
@@ -36,13 +41,17 @@ workspace "NativeFileDialog"
}
includedirs {root_dir.."src/include/"}
- targetdir(root_dir.."build/lib/%{cfg.buildcfg}/%{cfg.platform}")
+ targetdir(build_dir.."/lib/%{cfg.buildcfg}/%{cfg.platform}")
-- system build filters
filter "system:windows"
language "C++"
files {root_dir.."src/nfd_win.cpp"}
+ filter "system:macosx"
+ language "C"
+ files {root_dir.."src/nfd_cocoa.m"}
+
filter "system:linux"
language "C"
files {root_dir.."src/nfd_gtk.c"}
@@ -57,26 +66,26 @@ local make_test = function(name)
kind "ConsoleApp"
language "C"
dependson {"nfd"}
- targetdir(root_dir.."build/test")
+ targetdir(build_dir.."/bin")
files {root_dir.."test/"..name..".c"}
includedirs {root_dir.."src/include/"}
filter {"configurations:Debug", "architecture:x86_64"}
links {"nfd_d"}
- libdirs {root_dir.."build/lib/Debug/x64"}
+ libdirs {build_dir.."/lib/Debug/x64"}
filter {"configurations:Debug", "architecture:x86"}
links {"nfd_d"}
- libdirs {root_dir.."build/lib/Debug/x86"}
+ libdirs {build_dir.."/lib/Debug/x86"}
filter {"configurations:Release", "architecture:x86_64"}
links {"nfd"}
- libdirs {root_dir.."build/lib/Release/x64"}
+ libdirs {build_dir.."/lib/Release/x64"}
filter {"configurations:Release", "architecture:x86"}
links {"nfd"}
- libdirs {root_dir.."build/lib/Release/x86"}
+ libdirs {build_dir.."/lib/Release/x86"}
filter {"configurations:Debug"}
targetsuffix "_d"
@@ -84,6 +93,9 @@ local make_test = function(name)
filter {"configurations:Release", "system:linux"}
linkoptions {"-lnfd `pkg-config --libs gtk+-3.0`"}
+ filter {"system:macosx"}
+ links {"Foundation.framework", "AppKit.framework"}
+
filter {"configurations:Debug", "system:linux"}
linkoptions {"-lnfd_d `pkg-config --libs gtk+-3.0`"}
@@ -93,3 +105,89 @@ make_test("test_opendialog")
make_test("test_opendialogmultiple")
make_test("test_savedialog")
+newaction
+{
+ trigger = "dist",
+ description = "Create distributable premake dirs (maintainer only)",
+ execute = function()
+ types_to_create =
+ {
+ "vs2010",
+ "xcode4",
+ "gmake"
+ }
+
+ for i,v in ipairs(types_to_create) do
+ local premake_file = "./"..v.."/premake5.lua"
+ os.mkdir(v)
+ os.execute("cp premake5.lua "..v)
+ os.execute("premake5 --file="..premake_file.." "..v)
+ os.execute("rm "..premake_file)
+ end
+
+ end
+}
+
+newaction
+{
+ trigger = "clean",
+ description = "Clean all build files and output",
+ execute = function ()
+
+ files_to_delete =
+ {
+ "Makefile",
+ "*.make",
+ "*.txt",
+ "*.7z",
+ "*.zip",
+ "*.tar.gz",
+ "*.db",
+ "*.opendb",
+ "*.vcproj",
+ "*.vcxproj",
+ "*.vcxproj.user",
+ "*.vcxproj.filters",
+ "*.sln",
+ "*~*"
+ }
+
+ directories_to_delete =
+ {
+ "obj",
+ "ipch",
+ "bin",
+ ".vs",
+ "Debug",
+ "Release",
+ "release",
+ "lib",
+ "test",
+ "makefiles",
+ "gmake",
+ "vs2010",
+ "xcode4"
+ }
+
+ for i,v in ipairs( directories_to_delete ) do
+ os.rmdir( v )
+ end
+
+ if os.is "macosx" then
+ os.execute("rm -rf *.xcodeproj")
+ os.execute("rm -rf *.xcworkspace")
+ end
+
+ if not os.is "windows" then
+ os.execute "find . -name .DS_Store -delete"
+ for i,v in ipairs( files_to_delete ) do
+ os.execute( "rm -f " .. v )
+ end
+ else
+ for i,v in ipairs( files_to_delete ) do
+ os.execute( "del /F /Q " .. v )
+ end
+ end
+
+ end
+}
diff --git a/build/vs2010/NativeFileDialog.sln b/build/vs2010/NativeFileDialog.sln
new file mode 100644
index 000000000..a50ceb11a
--- /dev/null
+++ b/build/vs2010/NativeFileDialog.sln
@@ -0,0 +1,65 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nfd", "nfd.vcxproj", "{5D94880B-C99D-887C-5219-9F7CBE21947C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_opendialog", "test_opendialog.vcxproj", "{86EEA43A-F279-12FF-FB8A-95F367956EFF}"
+ ProjectSection(ProjectDependencies) = postProject
+ {5D94880B-C99D-887C-5219-9F7CBE21947C} = {5D94880B-C99D-887C-5219-9F7CBE21947C}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_opendialogmultiple", "test_opendialogmultiple.vcxproj", "{72399713-DE70-DFAA-E77A-43CE533106A4}"
+ ProjectSection(ProjectDependencies) = postProject
+ {5D94880B-C99D-887C-5219-9F7CBE21947C} = {5D94880B-C99D-887C-5219-9F7CBE21947C}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_savedialog", "test_savedialog.vcxproj", "{23941773-8F1F-8537-9830-082C043BE137}"
+ ProjectSection(ProjectDependencies) = postProject
+ {5D94880B-C99D-887C-5219-9F7CBE21947C} = {5D94880B-C99D-887C-5219-9F7CBE21947C}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {5D94880B-C99D-887C-5219-9F7CBE21947C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {5D94880B-C99D-887C-5219-9F7CBE21947C}.Debug|Win32.Build.0 = Debug|Win32
+ {5D94880B-C99D-887C-5219-9F7CBE21947C}.Debug|x64.ActiveCfg = Debug|x64
+ {5D94880B-C99D-887C-5219-9F7CBE21947C}.Debug|x64.Build.0 = Debug|x64
+ {5D94880B-C99D-887C-5219-9F7CBE21947C}.Release|Win32.ActiveCfg = Release|Win32
+ {5D94880B-C99D-887C-5219-9F7CBE21947C}.Release|Win32.Build.0 = Release|Win32
+ {5D94880B-C99D-887C-5219-9F7CBE21947C}.Release|x64.ActiveCfg = Release|x64
+ {5D94880B-C99D-887C-5219-9F7CBE21947C}.Release|x64.Build.0 = Release|x64
+ {86EEA43A-F279-12FF-FB8A-95F367956EFF}.Debug|Win32.ActiveCfg = Debug|Win32
+ {86EEA43A-F279-12FF-FB8A-95F367956EFF}.Debug|Win32.Build.0 = Debug|Win32
+ {86EEA43A-F279-12FF-FB8A-95F367956EFF}.Debug|x64.ActiveCfg = Debug|x64
+ {86EEA43A-F279-12FF-FB8A-95F367956EFF}.Debug|x64.Build.0 = Debug|x64
+ {86EEA43A-F279-12FF-FB8A-95F367956EFF}.Release|Win32.ActiveCfg = Release|Win32
+ {86EEA43A-F279-12FF-FB8A-95F367956EFF}.Release|Win32.Build.0 = Release|Win32
+ {86EEA43A-F279-12FF-FB8A-95F367956EFF}.Release|x64.ActiveCfg = Release|x64
+ {86EEA43A-F279-12FF-FB8A-95F367956EFF}.Release|x64.Build.0 = Release|x64
+ {72399713-DE70-DFAA-E77A-43CE533106A4}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72399713-DE70-DFAA-E77A-43CE533106A4}.Debug|Win32.Build.0 = Debug|Win32
+ {72399713-DE70-DFAA-E77A-43CE533106A4}.Debug|x64.ActiveCfg = Debug|x64
+ {72399713-DE70-DFAA-E77A-43CE533106A4}.Debug|x64.Build.0 = Debug|x64
+ {72399713-DE70-DFAA-E77A-43CE533106A4}.Release|Win32.ActiveCfg = Release|Win32
+ {72399713-DE70-DFAA-E77A-43CE533106A4}.Release|Win32.Build.0 = Release|Win32
+ {72399713-DE70-DFAA-E77A-43CE533106A4}.Release|x64.ActiveCfg = Release|x64
+ {72399713-DE70-DFAA-E77A-43CE533106A4}.Release|x64.Build.0 = Release|x64
+ {23941773-8F1F-8537-9830-082C043BE137}.Debug|Win32.ActiveCfg = Debug|Win32
+ {23941773-8F1F-8537-9830-082C043BE137}.Debug|Win32.Build.0 = Debug|Win32
+ {23941773-8F1F-8537-9830-082C043BE137}.Debug|x64.ActiveCfg = Debug|x64
+ {23941773-8F1F-8537-9830-082C043BE137}.Debug|x64.Build.0 = Debug|x64
+ {23941773-8F1F-8537-9830-082C043BE137}.Release|Win32.ActiveCfg = Release|Win32
+ {23941773-8F1F-8537-9830-082C043BE137}.Release|Win32.Build.0 = Release|Win32
+ {23941773-8F1F-8537-9830-082C043BE137}.Release|x64.ActiveCfg = Release|x64
+ {23941773-8F1F-8537-9830-082C043BE137}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/build/vs2010/nfd.vcxproj b/build/vs2010/nfd.vcxproj
new file mode 100644
index 000000000..03548205b
--- /dev/null
+++ b/build/vs2010/nfd.vcxproj
@@ -0,0 +1,165 @@
+
+
+
+
+ Release
+ x64
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Debug
+ Win32
+
+
+
+ {5D94880B-C99D-887C-5219-9F7CBE21947C}
+ Win32Proj
+ nfd
+
+
+
+ StaticLibrary
+ false
+ Unicode
+
+
+ StaticLibrary
+ false
+ Unicode
+
+
+ StaticLibrary
+ true
+ Unicode
+
+
+ StaticLibrary
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\lib\Release\x64\
+ ..\obj\x64\Release\nfd\
+ nfd
+ .lib
+
+
+ ..\lib\Release\x86\
+ ..\obj\x86\Release\nfd\
+ nfd
+ .lib
+
+
+ ..\lib\Debug\x64\
+ ..\obj\x64\Debug\nfd\
+ nfd_d
+ .lib
+
+
+ ..\lib\Debug\x86\
+ ..\obj\x86\Debug\nfd\
+ nfd_d
+ .lib
+
+
+
+ NotUsing
+ Level3
+ NDEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+
+
+ Windows
+ false
+ true
+ true
+
+
+
+
+ NotUsing
+ Level3
+ NDEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+
+
+ Windows
+ false
+ true
+ true
+
+
+
+
+ NotUsing
+ Level3
+ DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ ProgramDatabase
+ Disabled
+
+
+ Windows
+ true
+
+
+
+
+ NotUsing
+ Level3
+ DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+
+
+ Windows
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/vs2010/nfd.vcxproj.filters b/build/vs2010/nfd.vcxproj.filters
new file mode 100644
index 000000000..a8308e96d
--- /dev/null
+++ b/build/vs2010/nfd.vcxproj.filters
@@ -0,0 +1,19 @@
+
+
+
+
+ {89AF369E-F58E-B539-FEA6-40106A051C9B}
+
+
+
+
+
+ include
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/vs2010/test_opendialog.vcxproj b/build/vs2010/test_opendialog.vcxproj
new file mode 100644
index 000000000..70981e125
--- /dev/null
+++ b/build/vs2010/test_opendialog.vcxproj
@@ -0,0 +1,188 @@
+
+
+
+
+ Release
+ x64
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Debug
+ Win32
+
+
+
+ {86EEA43A-F279-12FF-FB8A-95F367956EFF}
+ Win32Proj
+ test_opendialog
+
+
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ true
+ Unicode
+
+
+ Application
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+ ..\bin\
+ ..\obj\x64\Release\test_opendialog\
+ test_opendialog
+ .exe
+
+
+ false
+ ..\bin\
+ ..\obj\x86\Release\test_opendialog\
+ test_opendialog
+ .exe
+
+
+ true
+ ..\bin\
+ ..\obj\x64\Debug\test_opendialog\
+ test_opendialog_d
+ .exe
+
+
+ true
+ ..\bin\
+ ..\obj\x86\Debug\test_opendialog\
+ test_opendialog_d
+ .exe
+
+
+
+ NotUsing
+ Level3
+ NDEBUG;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ CompileAsC
+
+
+ Console
+ false
+ true
+ true
+ ..\lib\Release\x64;%(AdditionalLibraryDirectories)
+ mainCRTStartup
+
+
+
+
+ NotUsing
+ Level3
+ NDEBUG;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ CompileAsC
+
+
+ Console
+ false
+ true
+ true
+ ..\lib\Release\x86;%(AdditionalLibraryDirectories)
+ mainCRTStartup
+
+
+
+
+ NotUsing
+ Level3
+ DEBUG;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ ProgramDatabase
+ Disabled
+ CompileAsC
+
+
+ Console
+ true
+ nfd_d.lib;%(AdditionalDependencies)
+ ..\lib\Debug\x64;%(AdditionalLibraryDirectories)
+ mainCRTStartup
+
+
+ false
+
+
+
+
+ NotUsing
+ Level3
+ DEBUG;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ CompileAsC
+
+
+ Console
+ true
+ nfd_d.lib;%(AdditionalDependencies)
+ ..\lib\Debug\x86;%(AdditionalLibraryDirectories)
+ mainCRTStartup
+
+
+ false
+
+
+
+
+
+
+
+ {5D94880B-C99D-887C-5219-9F7CBE21947C}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/vs2010/test_opendialogmultiple.vcxproj b/build/vs2010/test_opendialogmultiple.vcxproj
new file mode 100644
index 000000000..535a3aa72
--- /dev/null
+++ b/build/vs2010/test_opendialogmultiple.vcxproj
@@ -0,0 +1,188 @@
+
+
+
+
+ Release
+ x64
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Debug
+ Win32
+
+
+
+ {72399713-DE70-DFAA-E77A-43CE533106A4}
+ Win32Proj
+ test_opendialogmultiple
+
+
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ true
+ Unicode
+
+
+ Application
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+ ..\bin\
+ ..\obj\x64\Release\test_opendialogmultiple\
+ test_opendialogmultiple
+ .exe
+
+
+ false
+ ..\bin\
+ ..\obj\x86\Release\test_opendialogmultiple\
+ test_opendialogmultiple
+ .exe
+
+
+ true
+ ..\bin\
+ ..\obj\x64\Debug\test_opendialogmultiple\
+ test_opendialogmultiple_d
+ .exe
+
+
+ true
+ ..\bin\
+ ..\obj\x86\Debug\test_opendialogmultiple\
+ test_opendialogmultiple_d
+ .exe
+
+
+
+ NotUsing
+ Level3
+ NDEBUG;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ CompileAsC
+
+
+ Console
+ false
+ true
+ true
+ ..\lib\Release\x64;%(AdditionalLibraryDirectories)
+ mainCRTStartup
+
+
+
+
+ NotUsing
+ Level3
+ NDEBUG;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ CompileAsC
+
+
+ Console
+ false
+ true
+ true
+ ..\lib\Release\x86;%(AdditionalLibraryDirectories)
+ mainCRTStartup
+
+
+
+
+ NotUsing
+ Level3
+ DEBUG;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ ProgramDatabase
+ Disabled
+ CompileAsC
+
+
+ Console
+ true
+ nfd_d.lib;%(AdditionalDependencies)
+ ..\lib\Debug\x64;%(AdditionalLibraryDirectories)
+ mainCRTStartup
+
+
+ false
+
+
+
+
+ NotUsing
+ Level3
+ DEBUG;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ CompileAsC
+
+
+ Console
+ true
+ nfd_d.lib;%(AdditionalDependencies)
+ ..\lib\Debug\x86;%(AdditionalLibraryDirectories)
+ mainCRTStartup
+
+
+ false
+
+
+
+
+
+
+
+ {5D94880B-C99D-887C-5219-9F7CBE21947C}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/vs2010/test_savedialog.vcxproj b/build/vs2010/test_savedialog.vcxproj
new file mode 100644
index 000000000..3d03e21e4
--- /dev/null
+++ b/build/vs2010/test_savedialog.vcxproj
@@ -0,0 +1,188 @@
+
+
+
+
+ Release
+ x64
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Debug
+ Win32
+
+
+
+ {23941773-8F1F-8537-9830-082C043BE137}
+ Win32Proj
+ test_savedialog
+
+
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ true
+ Unicode
+
+
+ Application
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+ ..\bin\
+ ..\obj\x64\Release\test_savedialog\
+ test_savedialog
+ .exe
+
+
+ false
+ ..\bin\
+ ..\obj\x86\Release\test_savedialog\
+ test_savedialog
+ .exe
+
+
+ true
+ ..\bin\
+ ..\obj\x64\Debug\test_savedialog\
+ test_savedialog_d
+ .exe
+
+
+ true
+ ..\bin\
+ ..\obj\x86\Debug\test_savedialog\
+ test_savedialog_d
+ .exe
+
+
+
+ NotUsing
+ Level3
+ NDEBUG;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ CompileAsC
+
+
+ Console
+ false
+ true
+ true
+ ..\lib\Release\x64;%(AdditionalLibraryDirectories)
+ mainCRTStartup
+
+
+
+
+ NotUsing
+ Level3
+ NDEBUG;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ CompileAsC
+
+
+ Console
+ false
+ true
+ true
+ ..\lib\Release\x86;%(AdditionalLibraryDirectories)
+ mainCRTStartup
+
+
+
+
+ NotUsing
+ Level3
+ DEBUG;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ ProgramDatabase
+ Disabled
+ CompileAsC
+
+
+ Console
+ true
+ nfd_d.lib;%(AdditionalDependencies)
+ ..\lib\Debug\x64;%(AdditionalLibraryDirectories)
+ mainCRTStartup
+
+
+ false
+
+
+
+
+ NotUsing
+ Level3
+ DEBUG;%(PreprocessorDefinitions)
+ ..\..\src\include;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ CompileAsC
+
+
+ Console
+ true
+ nfd_d.lib;%(AdditionalDependencies)
+ ..\lib\Debug\x86;%(AdditionalLibraryDirectories)
+ mainCRTStartup
+
+
+ false
+
+
+
+
+
+
+
+ {5D94880B-C99D-887C-5219-9F7CBE21947C}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/xcode4/NativeFileDialog.xcworkspace/contents.xcworkspacedata b/build/xcode4/NativeFileDialog.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 000000000..fd158ae00
--- /dev/null
+++ b/build/xcode4/NativeFileDialog.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/xcode4/nfd.xcodeproj/project.pbxproj b/build/xcode4/nfd.xcodeproj/project.pbxproj
new file mode 100644
index 000000000..1dc157844
--- /dev/null
+++ b/build/xcode4/nfd.xcodeproj/project.pbxproj
@@ -0,0 +1,225 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 1C90C4308152110DACF88C838F91800E86F3E974C115000 /* nfd_cocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = 34E106E7906CCC0036EF0483B692FC004BFD2E771D99F000 /* nfd_cocoa.m */; };
+ 462F490FF946FC007AC6FBA4F308B8006F2B61852D07BC00 /* nfd_common.c in Sources */ = {isa = PBXBuildFile; fileRef = EE4CAC755A7B9800ABD081B3A2EC78003D10F61CE78B4E00 /* nfd_common.c */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 2D5FAE075E955E004E132FE62063040F3D4856EE372D800 /* common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = common.h; path = ../../src/common.h; sourceTree = ""; };
+ 34E106E7906CCC0036EF0483B692FC004BFD2E771D99F000 /* nfd_cocoa.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = nfd_cocoa.m; path = ../../src/nfd_cocoa.m; sourceTree = ""; };
+ BEE4B8BD4E28080096E0E38E7CCE600067D0FD53D60FB800 /* libnfd.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libnfd.a; path = libnfd.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ C64D5F6A6832C8008443FE300B20F000FD55AEC69A46D000 /* nfd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = nfd.h; path = ../../src/include/nfd.h; sourceTree = ""; };
+ D038169AF016F8008DBBEBD93887D8001EFC60427D26AC00 /* nfd_common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = nfd_common.h; path = ../../src/nfd_common.h; sourceTree = ""; };
+ EE4CAC755A7B9800ABD081B3A2EC78003D10F61CE78B4E00 /* nfd_common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = nfd_common.c; path = ../../src/nfd_common.c; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 751A9FD95AC8C40037A99755AD4EF000DD31D92C7F935000 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 7806C7175E8C74005F8A8A5402DF10009C2CF7B715175800 /* include */ = {
+ isa = PBXGroup;
+ children = (
+ C64D5F6A6832C8008443FE300B20F000FD55AEC69A46D000 /* nfd.h */,
+ );
+ name = include;
+ sourceTree = "";
+ };
+ A07348950F3060015022F345C23B6001BA741BAB5C63400 /* nfd */ = {
+ isa = PBXGroup;
+ children = (
+ 2D5FAE075E955E004E132FE62063040F3D4856EE372D800 /* common.h */,
+ 7806C7175E8C74005F8A8A5402DF10009C2CF7B715175800 /* include */,
+ 34E106E7906CCC0036EF0483B692FC004BFD2E771D99F000 /* nfd_cocoa.m */,
+ EE4CAC755A7B9800ABD081B3A2EC78003D10F61CE78B4E00 /* nfd_common.c */,
+ D038169AF016F8008DBBEBD93887D8001EFC60427D26AC00 /* nfd_common.h */,
+ DE2FD571A6C938008E134D4D9B3FB000BA17F9BDEA135000 /* Products */,
+ );
+ name = nfd;
+ sourceTree = "";
+ };
+ DE2FD571A6C938008E134D4D9B3FB000BA17F9BDEA135000 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ BEE4B8BD4E28080096E0E38E7CCE600067D0FD53D60FB800 /* libnfd.a */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ EE83A092ED35A800D60763CF9188480012A9D132A3C09000 /* nfd */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 751A9FD849040C0037A997549B8A3800DD31D92B6DCE9800 /* Build configuration list for PBXNativeTarget "nfd" */;
+ buildPhases = (
+ 751A9FDCCAB0440037A997591D367000DD31D92FEF7AD000 /* Resources */,
+ 751A9FDD345D600037A9975986E38A00DD31D9305927F000 /* Sources */,
+ 751A9FD95AC8C40037A99755AD4EF000DD31D92C7F935000 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = nfd;
+ productName = nfd;
+ productReference = BEE4B8BD4E28080096E0E38E7CCE600067D0FD53D60FB800 /* libnfd.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 08FB7793FE84155DC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "nfd" */;
+ compatibilityVersion = "Xcode 3.2";
+ hasScannedForEncodings = 1;
+ mainGroup = A07348950F3060015022F345C23B6001BA741BAB5C63400 /* nfd */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ EE83A092ED35A800D60763CF9188480012A9D132A3C09000 /* libnfd.a */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 751A9FDCCAB0440037A997591D367000DD31D92FEF7AD000 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 751A9FDD345D600037A9975986E38A00DD31D9305927F000 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1C90C4308152110DACF88C838F91800E86F3E974C115000 /* nfd_cocoa.m in Sources */,
+ 462F490FF946FC007AC6FBA4F308B8006F2B61852D07BC00 /* nfd_common.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 113D36768FABFD007F3BB37DE6396800388AB50FBEB27A00 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CONFIGURATION_BUILD_DIR = ../lib/Release/x86;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_DYNAMIC_NO_PIC = NO;
+ INSTALL_PATH = /usr/local/lib;
+ PRODUCT_NAME = nfd;
+ };
+ name = Release;
+ };
+ 848988B667308800E6DCBDCC13934800A547B4A8D21BC000 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = i386;
+ CONFIGURATION_BUILD_DIR = "$(SYMROOT)";
+ CONFIGURATION_TEMP_DIR = "$(OBJROOT)";
+ COPY_PHASE_STRIP = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ DEBUG,
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ OBJROOT = ../obj/x86/Debug/nfd;
+ ONLY_ACTIVE_ARCH = YES;
+ SYMROOT = ../lib/Debug/x86;
+ USER_HEADER_SEARCH_PATHS = (
+ ../../src/include,
+ );
+ };
+ name = Debug;
+ };
+ A979A906F08D4000ED475A27DB796800A41AC288235F3000 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CONFIGURATION_BUILD_DIR = ../lib/Debug/x86;
+ GCC_DYNAMIC_NO_PIC = NO;
+ INSTALL_PATH = /usr/local/lib;
+ PRODUCT_NAME = nfd_d;
+ };
+ name = Debug;
+ };
+ CD5AC992E9E05800114F9AC539F3EE001653BBCBBC722000 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = i386;
+ CONFIGURATION_BUILD_DIR = "$(SYMROOT)";
+ CONFIGURATION_TEMP_DIR = "$(OBJROOT)";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ NDEBUG,
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ OBJROOT = ../obj/x86/Release/nfd;
+ ONLY_ACTIVE_ARCH = NO;
+ SYMROOT = ../lib/Release/x86;
+ USER_HEADER_SEARCH_PATHS = (
+ ../../src/include,
+ );
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "nfd" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ CD5AC992E9E05800114F9AC539F3EE001653BBCBBC722000 /* Release */,
+ CD5AC992E9E05800114F9AC539F3EE001653BBCBBC722000 /* Release */,
+ 848988B667308800E6DCBDCC13934800A547B4A8D21BC000 /* Debug */,
+ 848988B667308800E6DCBDCC13934800A547B4A8D21BC000 /* Debug */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 751A9FD849040C0037A997549B8A3800DD31D92B6DCE9800 /* Build configuration list for PBXNativeTarget "libnfd.a" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 113D36768FABFD007F3BB37DE6396800388AB50FBEB27A00 /* Release */,
+ 113D36768FABFD007F3BB37DE6396800388AB50FBEB27A00 /* Release */,
+ A979A906F08D4000ED475A27DB796800A41AC288235F3000 /* Debug */,
+ A979A906F08D4000ED475A27DB796800A41AC288235F3000 /* Debug */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+};
+rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
\ No newline at end of file
diff --git a/build/xcode4/test_opendialog.xcodeproj/project.pbxproj b/build/xcode4/test_opendialog.xcodeproj/project.pbxproj
new file mode 100644
index 000000000..dd8f25d87
--- /dev/null
+++ b/build/xcode4/test_opendialog.xcodeproj/project.pbxproj
@@ -0,0 +1,295 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 711A18F3DA9A5C001104237031FFCE008A1BB9E8E40DE800 /* test_opendialog.c in Sources */ = {isa = PBXBuildFile; fileRef = 1FBF5AAD30141900E74D5FE1620D6000683E81C8DBECA000 /* test_opendialog.c */; };
+ C1F145B911EAB800A3EF00B4BB57200C324EFBB0110C000 /* libnfd.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C9E0873DE2C340012A58D67A2E18A0021320E6857503200 /* libnfd.a */; };
+ D4E5D913B762400071DC6C0248A4F00541918B2261D4000 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DBBC4EDA893A8800D5925C05D69D78009728CBB74CBC7800 /* AppKit.framework */; };
+ ED4CE49BDAA6700A01B51B5806AC80038E21E50DD9FA600 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71D6295A4B74E000C0EF210A2FBBE8004EE73ACBB3A91400 /* Foundation.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ F815FDB657D02800D15C3BB3513630005DA27B0844D18800 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* nfd.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = BEE4B8BD4E28080096E0E38E7CCE600067D0FD53D60FB800;
+ remoteInfo = libnfd.a;
+ };
+ FA883EECAA0AA000D3CE7CE9A370A0006014BC3E970BFC00 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* nfd.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = EE83A092ED35A800D60763CF9188480012A9D132A3C09000;
+ remoteInfo = libnfd.a;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 1FBF5AAD30141900E74D5FE1620D6000683E81C8DBECA000 /* test_opendialog.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = test_opendialog.c; path = ../../test/test_opendialog.c; sourceTree = ""; };
+ 71D6295A4B74E000C0EF210A2FBBE8004EE73ACBB3A91400 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ DBBC4EDA893A8800D5925C05D69D78009728CBB74CBC7800 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
+ E34C4B4560AA4800E55A48E186D07800FA6872D4EDD77000 /* test_opendialog */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = test_opendialog; path = test_opendialog; sourceTree = BUILT_PRODUCTS_DIR; };
+ EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* libnfd.a */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "nfd.xcodeproj"; path = nfd.xcodeproj; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ C757F47DD3B0D800854E9343769F0000FE6043DA05C4E000 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ ED4CE49BDAA6700A01B51B5806AC80038E21E50DD9FA600 /* Foundation.framework in Frameworks */,
+ D4E5D913B762400071DC6C0248A4F00541918B2261D4000 /* AppKit.framework in Frameworks */,
+ C1F145B911EAB800A3EF00B4BB57200C324EFBB0110C000 /* libnfd.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 49755AD7BBF7680080163982A7E87000BFF7C341FA201000 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 71D6295A4B74E000C0EF210A2FBBE8004EE73ACBB3A91400 /* Foundation.framework */,
+ DBBC4EDA893A8800D5925C05D69D78009728CBB74CBC7800 /* AppKit.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ 696CD58FDE62100C925C4D5506C48006EAE06AC22B0B000 /* test_opendialog */ = {
+ isa = PBXGroup;
+ children = (
+ 1FBF5AAD30141900E74D5FE1620D6000683E81C8DBECA000 /* test_opendialog.c */,
+ 49755AD7BBF7680080163982A7E87000BFF7C341FA201000 /* Frameworks */,
+ DE2FD571A6C938008E134D4D9B3FB000BA17F9BDEA135000 /* Products */,
+ DE2FDC7F9D9690008E13545B920D0800BA1800CBE0E0A800 /* Projects */,
+ );
+ name = test_opendialog;
+ sourceTree = "";
+ };
+ C1B317315D484800D7CC7DEB745AE000DC0CAE626476E000 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ C9E0873DE2C340012A58D67A2E18A0021320E6857503200 /* libnfd.a */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ DE2FD571A6C938008E134D4D9B3FB000BA17F9BDEA135000 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ E34C4B4560AA4800E55A48E186D07800FA6872D4EDD77000 /* test_opendialog */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ DE2FDC7F9D9690008E13545B920D0800BA1800CBE0E0A800 /* Projects */ = {
+ isa = PBXGroup;
+ children = (
+ EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* nfd.xcodeproj */,
+ );
+ name = Projects;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ A20AA503A7F3C8007B50E300A159CC00797225594F528C0 /* test_opendialog */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = C757F47CC1EC2000854E934264DA4800FE6043D8F4002800 /* Build configuration list for PBXNativeTarget "test_opendialog" */;
+ buildPhases = (
+ C757F48143985800854E9346E6868000FE6043DD75AC6000 /* Resources */,
+ C757F481AD457000854E934750339800FE6043DDDF597800 /* Sources */,
+ C757F47DD3B0D800854E9343769F0000FE6043DA05C4E000 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ C1C611684B008800D7DF782262132000DC1FA899522F2000 /* PBXTargetDependency */,
+ );
+ name = test_opendialog;
+ productInstallPath = "$(HOME)/bin";
+ productName = test_opendialog;
+ productReference = E34C4B4560AA4800E55A48E186D07800FA6872D4EDD77000 /* test_opendialog */;
+ productType = "com.apple.product-type.tool";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 08FB7793FE84155DC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "test_opendialog" */;
+ compatibilityVersion = "Xcode 3.2";
+ hasScannedForEncodings = 1;
+ mainGroup = 696CD58FDE62100C925C4D5506C48006EAE06AC22B0B000 /* test_opendialog */;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = C1B317315D484800D7CC7DEB745AE000DC0CAE626476E000 /* Products */;
+ ProjectRef = EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* nfd.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ A20AA503A7F3C8007B50E300A159CC00797225594F528C0 /* test_opendialog */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ C9E0873DE2C340012A58D67A2E18A0021320E6857503200 /* libnfd.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = libnfd.a;
+ remoteRef = F815FDB657D02800D15C3BB3513630005DA27B0844D18800 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+ C757F48143985800854E9346E6868000FE6043DD75AC6000 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ C757F481AD457000854E934750339800FE6043DDDF597800 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 711A18F3DA9A5C001104237031FFCE008A1BB9E8E40DE800 /* test_opendialog.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ C1C611684B008800D7DF782262132000DC1FA899522F2000 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = libnfd.a;
+ targetProxy = FA883EECAA0AA000D3CE7CE9A370A0006014BC3E970BFC00 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ CC378727888E10004EEA26144BF9D400DAF6BEFB8A9D7800 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CONFIGURATION_BUILD_DIR = ../bin;
+ GCC_DYNAMIC_NO_PIC = NO;
+ INSTALL_PATH = /usr/local/bin;
+ PRODUCT_NAME = test_opendialog_d;
+ };
+ name = Debug;
+ };
+ DAEB1F1D2B21E800D4C12C487884E00096579BF9EEA3E000 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CONFIGURATION_BUILD_DIR = ../bin;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_DYNAMIC_NO_PIC = NO;
+ INSTALL_PATH = /usr/local/bin;
+ PRODUCT_NAME = test_opendialog;
+ };
+ name = Release;
+ };
+ E2A6E5D13AC68800E4B4E36D60ECB800F9C30D60C7F3B000 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = i386;
+ CONFIGURATION_BUILD_DIR = "$(SYMROOT)";
+ CONFIGURATION_TEMP_DIR = "$(OBJROOT)";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ NDEBUG,
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ LIBRARY_SEARCH_PATHS = (
+ ../lib/Release/x86,
+ );
+ OBJROOT = ../obj/x86/Release/test_opendialog;
+ ONLY_ACTIVE_ARCH = NO;
+ SYMROOT = ../bin;
+ USER_HEADER_SEARCH_PATHS = (
+ ../../src/include,
+ );
+ };
+ name = Release;
+ };
+ FD26DF0318834000134045BD2F95DE00178076341FB1D900 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = i386;
+ CONFIGURATION_BUILD_DIR = "$(SYMROOT)";
+ CONFIGURATION_TEMP_DIR = "$(OBJROOT)";
+ COPY_PHASE_STRIP = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ DEBUG,
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ LIBRARY_SEARCH_PATHS = (
+ ../lib/Debug/x86,
+ );
+ OBJROOT = ../obj/x86/Debug/test_opendialog;
+ ONLY_ACTIVE_ARCH = YES;
+ OTHER_LDFLAGS = (
+ "-lnfd_d",
+ );
+ SYMROOT = ../bin;
+ USER_HEADER_SEARCH_PATHS = (
+ ../../src/include,
+ );
+ };
+ name = Debug;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "test_opendialog" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ E2A6E5D13AC68800E4B4E36D60ECB800F9C30D60C7F3B000 /* Release */,
+ E2A6E5D13AC68800E4B4E36D60ECB800F9C30D60C7F3B000 /* Release */,
+ FD26DF0318834000134045BD2F95DE00178076341FB1D900 /* Debug */,
+ FD26DF0318834000134045BD2F95DE00178076341FB1D900 /* Debug */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ C757F47CC1EC2000854E934264DA4800FE6043D8F4002800 /* Build configuration list for PBXNativeTarget "test_opendialog" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ DAEB1F1D2B21E800D4C12C487884E00096579BF9EEA3E000 /* Release */,
+ DAEB1F1D2B21E800D4C12C487884E00096579BF9EEA3E000 /* Release */,
+ CC378727888E10004EEA26144BF9D400DAF6BEFB8A9D7800 /* Debug */,
+ CC378727888E10004EEA26144BF9D400DAF6BEFB8A9D7800 /* Debug */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+};
+rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
\ No newline at end of file
diff --git a/build/xcode4/test_opendialogmultiple.xcodeproj/project.pbxproj b/build/xcode4/test_opendialogmultiple.xcodeproj/project.pbxproj
new file mode 100644
index 000000000..2eaa8d7a5
--- /dev/null
+++ b/build/xcode4/test_opendialogmultiple.xcodeproj/project.pbxproj
@@ -0,0 +1,295 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ B6597D4BFD8D0000DC5C8924578E10007B9F8FAD1ED50C00 /* test_opendialogmultiple.c in Sources */ = {isa = PBXBuildFile; fileRef = 78D846004522880C1A475441F1E98007344D54B22EF3000 /* test_opendialogmultiple.c */; };
+ C1F145B911EAB800A3EF00B4BB57200C324EFBB0110C000 /* libnfd.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C9E0873DE2C340012A58D67A2E18A0021320E6857503200 /* libnfd.a */; };
+ D4E5D913B762400071DC6C0248A4F00541918B2261D4000 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DBBC4EDA893A8800D5925C05D69D78009728CBB74CBC7800 /* AppKit.framework */; };
+ ED4CE49BDAA6700A01B51B5806AC80038E21E50DD9FA600 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71D6295A4B74E000C0EF210A2FBBE8004EE73ACBB3A91400 /* Foundation.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ F815FDB657D02800D15C3BB3513630005DA27B0844D18800 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* nfd.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = BEE4B8BD4E28080096E0E38E7CCE600067D0FD53D60FB800;
+ remoteInfo = libnfd.a;
+ };
+ FA883EECAA0AA000D3CE7CE9A370A0006014BC3E970BFC00 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* nfd.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = EE83A092ED35A800D60763CF9188480012A9D132A3C09000;
+ remoteInfo = libnfd.a;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 71D6295A4B74E000C0EF210A2FBBE8004EE73ACBB3A91400 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 78D846004522880C1A475441F1E98007344D54B22EF3000 /* test_opendialogmultiple.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = test_opendialogmultiple.c; path = ../../test/test_opendialogmultiple.c; sourceTree = ""; };
+ B767DBEF5EEA00003A1A7ADC2255C200C62713C360F96800 /* test_opendialogmultiple */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = test_opendialogmultiple; path = test_opendialogmultiple; sourceTree = BUILT_PRODUCTS_DIR; };
+ DBBC4EDA893A8800D5925C05D69D78009728CBB74CBC7800 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
+ EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* libnfd.a */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "nfd.xcodeproj"; path = nfd.xcodeproj; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 136C43F59EED3B00413A61E7C727F400246995B4AEC38200 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ ED4CE49BDAA6700A01B51B5806AC80038E21E50DD9FA600 /* Foundation.framework in Frameworks */,
+ D4E5D913B762400071DC6C0248A4F00541918B2261D4000 /* AppKit.framework in Frameworks */,
+ C1F145B911EAB800A3EF00B4BB57200C324EFBB0110C000 /* libnfd.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 49755AD7BBF7680080163982A7E87000BFF7C341FA201000 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 71D6295A4B74E000C0EF210A2FBBE8004EE73ACBB3A91400 /* Foundation.framework */,
+ DBBC4EDA893A8800D5925C05D69D78009728CBB74CBC7800 /* AppKit.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ C1B317315D484800D7CC7DEB745AE000DC0CAE626476E000 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ C9E0873DE2C340012A58D67A2E18A0021320E6857503200 /* libnfd.a */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ DE2FD571A6C938008E134D4D9B3FB000BA17F9BDEA135000 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ B767DBEF5EEA00003A1A7ADC2255C200C62713C360F96800 /* test_opendialogmultiple */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ DE2FDC7F9D9690008E13545B920D0800BA1800CBE0E0A800 /* Projects */ = {
+ isa = PBXGroup;
+ children = (
+ EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* nfd.xcodeproj */,
+ );
+ name = Projects;
+ sourceTree = "";
+ };
+ E2F87E433323A8005FC2F5BD33D6A000FB0AB925A7B87000 /* test_opendialogmultiple */ = {
+ isa = PBXGroup;
+ children = (
+ 78D846004522880C1A475441F1E98007344D54B22EF3000 /* test_opendialogmultiple.c */,
+ 49755AD7BBF7680080163982A7E87000BFF7C341FA201000 /* Frameworks */,
+ DE2FD571A6C938008E134D4D9B3FB000BA17F9BDEA135000 /* Products */,
+ DE2FDC7F9D9690008E13545B920D0800BA1800CBE0E0A800 /* Projects */,
+ );
+ name = test_opendialogmultiple;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 9132448CAFA82800A4AC0B4E0AE9780089E2BA9ADE43C000 /* test_opendialogmultiple */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 136C43F48D288300413A61E6B5633C00246995B39CFECA00 /* Build configuration list for PBXNativeTarget "test_opendialogmultiple" */;
+ buildPhases = (
+ 136C43F90ED4BB00413A61EB370F7400246995B81EAB0200 /* Resources */,
+ 136C43F97881D500413A61EBA0BC8C00246995B888581A00 /* Sources */,
+ 136C43F59EED3B00413A61E7C727F400246995B4AEC38200 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ C1C611684B008800D7DF782262132000DC1FA899522F2000 /* PBXTargetDependency */,
+ );
+ name = test_opendialogmultiple;
+ productInstallPath = "$(HOME)/bin";
+ productName = test_opendialogmultiple;
+ productReference = B767DBEF5EEA00003A1A7ADC2255C200C62713C360F96800 /* test_opendialogmultiple */;
+ productType = "com.apple.product-type.tool";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 08FB7793FE84155DC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "test_opendialogmultiple" */;
+ compatibilityVersion = "Xcode 3.2";
+ hasScannedForEncodings = 1;
+ mainGroup = E2F87E433323A8005FC2F5BD33D6A000FB0AB925A7B87000 /* test_opendialogmultiple */;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = C1B317315D484800D7CC7DEB745AE000DC0CAE626476E000 /* Products */;
+ ProjectRef = EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* nfd.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ 9132448CAFA82800A4AC0B4E0AE9780089E2BA9ADE43C000 /* test_opendialogmultiple */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ C9E0873DE2C340012A58D67A2E18A0021320E6857503200 /* libnfd.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = libnfd.a;
+ remoteRef = F815FDB657D02800D15C3BB3513630005DA27B0844D18800 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 136C43F90ED4BB00413A61EB370F7400246995B81EAB0200 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 136C43F97881D500413A61EBA0BC8C00246995B888581A00 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ B6597D4BFD8D0000DC5C8924578E10007B9F8FAD1ED50C00 /* test_opendialogmultiple.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ C1C611684B008800D7DF782262132000DC1FA899522F2000 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = libnfd.a;
+ targetProxy = FA883EECAA0AA000D3CE7CE9A370A0006014BC3E970BFC00 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 4D67FC88298418009C80F4380DCB20002A790DF991B85000 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CONFIGURATION_BUILD_DIR = ../bin;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_DYNAMIC_NO_PIC = NO;
+ INSTALL_PATH = /usr/local/bin;
+ PRODUCT_NAME = test_opendialogmultiple;
+ };
+ name = Release;
+ };
+ 9F8CEB9AA461F000795A4EB7C62D9C00E525A95D02E2C800 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = i386;
+ CONFIGURATION_BUILD_DIR = "$(SYMROOT)";
+ CONFIGURATION_TEMP_DIR = "$(OBJROOT)";
+ COPY_PHASE_STRIP = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ DEBUG,
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ LIBRARY_SEARCH_PATHS = (
+ ../lib/Debug/x86,
+ );
+ OBJROOT = ../obj/x86/Debug/test_opendialogmultiple;
+ ONLY_ACTIVE_ARCH = YES;
+ OTHER_LDFLAGS = (
+ "-lnfd_d",
+ );
+ SYMROOT = ../bin;
+ USER_HEADER_SEARCH_PATHS = (
+ ../../src/include,
+ );
+ };
+ name = Debug;
+ };
+ A81EB96DEB857800E4D7C0F1B9A8C800DBCE1BB540B72000 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CONFIGURATION_BUILD_DIR = ../bin;
+ GCC_DYNAMIC_NO_PIC = NO;
+ INSTALL_PATH = /usr/local/bin;
+ PRODUCT_NAME = test_opendialogmultiple_d;
+ };
+ name = Debug;
+ };
+ B6C2767B3906400039751567FC720400C581AE4F3B15A800 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = i386;
+ CONFIGURATION_BUILD_DIR = "$(SYMROOT)";
+ CONFIGURATION_TEMP_DIR = "$(OBJROOT)";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ NDEBUG,
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ LIBRARY_SEARCH_PATHS = (
+ ../lib/Release/x86,
+ );
+ OBJROOT = ../obj/x86/Release/test_opendialogmultiple;
+ ONLY_ACTIVE_ARCH = NO;
+ SYMROOT = ../bin;
+ USER_HEADER_SEARCH_PATHS = (
+ ../../src/include,
+ );
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 136C43F48D288300413A61E6B5633C00246995B39CFECA00 /* Build configuration list for PBXNativeTarget "test_opendialogmultiple" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 4D67FC88298418009C80F4380DCB20002A790DF991B85000 /* Release */,
+ 4D67FC88298418009C80F4380DCB20002A790DF991B85000 /* Release */,
+ A81EB96DEB857800E4D7C0F1B9A8C800DBCE1BB540B72000 /* Debug */,
+ A81EB96DEB857800E4D7C0F1B9A8C800DBCE1BB540B72000 /* Debug */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "test_opendialogmultiple" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ B6C2767B3906400039751567FC720400C581AE4F3B15A800 /* Release */,
+ B6C2767B3906400039751567FC720400C581AE4F3B15A800 /* Release */,
+ 9F8CEB9AA461F000795A4EB7C62D9C00E525A95D02E2C800 /* Debug */,
+ 9F8CEB9AA461F000795A4EB7C62D9C00E525A95D02E2C800 /* Debug */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+};
+rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
\ No newline at end of file
diff --git a/build/xcode4/test_savedialog.xcodeproj/project.pbxproj b/build/xcode4/test_savedialog.xcodeproj/project.pbxproj
new file mode 100644
index 000000000..028606b30
--- /dev/null
+++ b/build/xcode4/test_savedialog.xcodeproj/project.pbxproj
@@ -0,0 +1,295 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ C1F145B911EAB800A3EF00B4BB57200C324EFBB0110C000 /* libnfd.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C9E0873DE2C340012A58D67A2E18A0021320E6857503200 /* libnfd.a */; };
+ D4E5D913B762400071DC6C0248A4F00541918B2261D4000 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DBBC4EDA893A8800D5925C05D69D78009728CBB74CBC7800 /* AppKit.framework */; };
+ ED4CE49BDAA6700A01B51B5806AC80038E21E50DD9FA600 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71D6295A4B74E000C0EF210A2FBBE8004EE73ACBB3A91400 /* Foundation.framework */; };
+ F9C6A671D683600099B0B0EE2DE8D80012C84766DFF6F100 /* test_savedialog.c in Sources */ = {isa = PBXBuildFile; fileRef = 6753EC0B8B1CE4002EE1F13FBD162E00AFD3132736F56800 /* test_savedialog.c */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ F815FDB657D02800D15C3BB3513630005DA27B0844D18800 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* nfd.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = BEE4B8BD4E28080096E0E38E7CCE600067D0FD53D60FB800;
+ remoteInfo = libnfd.a;
+ };
+ FA883EECAA0AA000D3CE7CE9A370A0006014BC3E970BFC00 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* nfd.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = EE83A092ED35A800D60763CF9188480012A9D132A3C09000;
+ remoteInfo = libnfd.a;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 6753EC0B8B1CE4002EE1F13FBD162E00AFD3132736F56800 /* test_savedialog.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = test_savedialog.c; path = ../../test/test_savedialog.c; sourceTree = ""; };
+ 71D6295A4B74E000C0EF210A2FBBE8004EE73ACBB3A91400 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ AC2BFB5434DE8800AE39F8F05B04B800C34822E3C20BB000 /* test_savedialog */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = test_savedialog; path = test_savedialog; sourceTree = BUILT_PRODUCTS_DIR; };
+ DBBC4EDA893A8800D5925C05D69D78009728CBB74CBC7800 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
+ EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* libnfd.a */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "nfd.xcodeproj"; path = nfd.xcodeproj; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D68D68E8152A200CB5F75542440C800447125EAB366A800 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ ED4CE49BDAA6700A01B51B5806AC80038E21E50DD9FA600 /* Foundation.framework in Frameworks */,
+ D4E5D913B762400071DC6C0248A4F00541918B2261D4000 /* AppKit.framework in Frameworks */,
+ C1F145B911EAB800A3EF00B4BB57200C324EFBB0110C000 /* libnfd.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 49755AD7BBF7680080163982A7E87000BFF7C341FA201000 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 71D6295A4B74E000C0EF210A2FBBE8004EE73ACBB3A91400 /* Foundation.framework */,
+ DBBC4EDA893A8800D5925C05D69D78009728CBB74CBC7800 /* AppKit.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ A679D81DD43C50006908CF9A26C27800E911170F906DB80 /* test_savedialog */ = {
+ isa = PBXGroup;
+ children = (
+ 6753EC0B8B1CE4002EE1F13FBD162E00AFD3132736F56800 /* test_savedialog.c */,
+ 49755AD7BBF7680080163982A7E87000BFF7C341FA201000 /* Frameworks */,
+ DE2FD571A6C938008E134D4D9B3FB000BA17F9BDEA135000 /* Products */,
+ DE2FDC7F9D9690008E13545B920D0800BA1800CBE0E0A800 /* Projects */,
+ );
+ name = test_savedialog;
+ sourceTree = "";
+ };
+ C1B317315D484800D7CC7DEB745AE000DC0CAE626476E000 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ C9E0873DE2C340012A58D67A2E18A0021320E6857503200 /* libnfd.a */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ DE2FD571A6C938008E134D4D9B3FB000BA17F9BDEA135000 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ AC2BFB5434DE8800AE39F8F05B04B800C34822E3C20BB000 /* test_savedialog */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ DE2FDC7F9D9690008E13545B920D0800BA1800CBE0E0A800 /* Projects */ = {
+ isa = PBXGroup;
+ children = (
+ EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* nfd.xcodeproj */,
+ );
+ name = Projects;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 6A116C49EC7180004357AA46E5D78000CF9DE99BD972E000 /* test_savedialog */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D68D68D6F8DEA00CB5F7553127C1000447125E9A1A1F000 /* Build configuration list for PBXNativeTarget "test_savedialog" */;
+ buildPhases = (
+ D68D691F13A2280CB5F755794284800447125EE234E2800 /* Resources */,
+ D68D6925AE73C00CB5F7557FDD56000447125EE8CFB4400 /* Sources */,
+ D68D68E8152A200CB5F75542440C800447125EAB366A800 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ C1C611684B008800D7DF782262132000DC1FA899522F2000 /* PBXTargetDependency */,
+ );
+ name = test_savedialog;
+ productInstallPath = "$(HOME)/bin";
+ productName = test_savedialog;
+ productReference = AC2BFB5434DE8800AE39F8F05B04B800C34822E3C20BB000 /* test_savedialog */;
+ productType = "com.apple.product-type.tool";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 08FB7793FE84155DC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "test_savedialog" */;
+ compatibilityVersion = "Xcode 3.2";
+ hasScannedForEncodings = 1;
+ mainGroup = A679D81DD43C50006908CF9A26C27800E911170F906DB80 /* test_savedialog */;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = C1B317315D484800D7CC7DEB745AE000DC0CAE626476E000 /* Products */;
+ ProjectRef = EB69196425175800B2613CD080777800927DDDE7C2BB1800 /* nfd.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ 6A116C49EC7180004357AA46E5D78000CF9DE99BD972E000 /* test_savedialog */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ C9E0873DE2C340012A58D67A2E18A0021320E6857503200 /* libnfd.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = libnfd.a;
+ remoteRef = F815FDB657D02800D15C3BB3513630005DA27B0844D18800 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D68D691F13A2280CB5F755794284800447125EE234E2800 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D68D6925AE73C00CB5F7557FDD56000447125EE8CFB4400 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ F9C6A671D683600099B0B0EE2DE8D80012C84766DFF6F100 /* test_savedialog.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ C1C611684B008800D7DF782262132000DC1FA899522F2000 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = libnfd.a;
+ targetProxy = FA883EECAA0AA000D3CE7CE9A370A0006014BC3E970BFC00 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 2E9E40D6D900A00FCBFF138BAF30000BE5660EA31120000 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CONFIGURATION_BUILD_DIR = ../bin;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_DYNAMIC_NO_PIC = NO;
+ INSTALL_PATH = /usr/local/bin;
+ PRODUCT_NAME = test_savedialog;
+ };
+ name = Release;
+ };
+ 5FE1F55A0F8D0000E2949446D2F8C0006EA12D2E119C6800 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CONFIGURATION_BUILD_DIR = ../bin;
+ GCC_DYNAMIC_NO_PIC = NO;
+ INSTALL_PATH = /usr/local/bin;
+ PRODUCT_NAME = test_savedialog_d;
+ };
+ name = Debug;
+ };
+ AB8695E00EFAC800AD94937C3520F800C2A2BD6F9C27F000 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = i386;
+ CONFIGURATION_BUILD_DIR = "$(SYMROOT)";
+ CONFIGURATION_TEMP_DIR = "$(OBJROOT)";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ NDEBUG,
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ LIBRARY_SEARCH_PATHS = (
+ ../lib/Release/x86,
+ );
+ OBJROOT = ../obj/x86/Release/test_savedialog;
+ ONLY_ACTIVE_ARCH = NO;
+ SYMROOT = ../bin;
+ USER_HEADER_SEARCH_PATHS = (
+ ../../src/include,
+ );
+ };
+ name = Release;
+ };
+ AF887F5B5BD5F802111EEAFCCCFFA0025521F26BCEBF600 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = i386;
+ CONFIGURATION_BUILD_DIR = "$(SYMROOT)";
+ CONFIGURATION_TEMP_DIR = "$(OBJROOT)";
+ COPY_PHASE_STRIP = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ DEBUG,
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ LIBRARY_SEARCH_PATHS = (
+ ../lib/Debug/x86,
+ );
+ OBJROOT = ../obj/x86/Debug/test_savedialog;
+ ONLY_ACTIVE_ARCH = YES;
+ OTHER_LDFLAGS = (
+ "-lnfd_d",
+ );
+ SYMROOT = ../bin;
+ USER_HEADER_SEARCH_PATHS = (
+ ../../src/include,
+ );
+ };
+ name = Debug;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "test_savedialog" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ AB8695E00EFAC800AD94937C3520F800C2A2BD6F9C27F000 /* Release */,
+ AB8695E00EFAC800AD94937C3520F800C2A2BD6F9C27F000 /* Release */,
+ AF887F5B5BD5F802111EEAFCCCFFA0025521F26BCEBF600 /* Debug */,
+ AF887F5B5BD5F802111EEAFCCCFFA0025521F26BCEBF600 /* Debug */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ D68D68D6F8DEA00CB5F7553127C1000447125E9A1A1F000 /* Build configuration list for PBXNativeTarget "test_savedialog" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 2E9E40D6D900A00FCBFF138BAF30000BE5660EA31120000 /* Release */,
+ 2E9E40D6D900A00FCBFF138BAF30000BE5660EA31120000 /* Release */,
+ 5FE1F55A0F8D0000E2949446D2F8C0006EA12D2E119C6800 /* Debug */,
+ 5FE1F55A0F8D0000E2949446D2F8C0006EA12D2E119C6800 /* Debug */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+};
+rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
\ No newline at end of file
diff --git a/src/SConstruct b/src/SConstruct
index 342fa1a3a..b1a9e4881 100644
--- a/src/SConstruct
+++ b/src/SConstruct
@@ -3,7 +3,8 @@
#
# Scons build script -- GCC, Clang, Visual Studio
# Does not build test
-
+#
+# SCons builds are deprecated -- see README.md for details.
import os
@@ -97,3 +98,5 @@ set_warnings(nfd_env)
nfd_env.Append( CPPPATH=['.','./include'] )
nfd_env.StaticLibrary( get_lib_name('nfd', debug), nfd_files )
+
+print "*** Scons builds are deprecated! See README.md for details."
diff --git a/test/SConstruct b/test/SConstruct
index 14e98912b..bf4f0c70e 100644
--- a/test/SConstruct
+++ b/test/SConstruct
@@ -2,6 +2,8 @@
# Native file dialog
#
# Build tests
+#
+# SCons builds are deprecated -- see README.md for details.
target_arch=str(Platform())
debug = int(ARGUMENTS.get( 'debug', 0 ))
@@ -68,3 +70,5 @@ elif target_arch == 'win32':
for codebase in files:
output_name = get_lib_name(codebase, debug)
test_env.Program( output_name, files[codebase] )
+
+print "*** Scons builds are deprecated! See README.md for details."
diff --git a/test/test_opendialog.c b/test/test_opendialog.c
index 2984acf99..54bf37423 100644
--- a/test/test_opendialog.c
+++ b/test/test_opendialog.c
@@ -1,4 +1,4 @@
-#include
+#include "nfd.h"
#include
#include
diff --git a/test/test_opendialogmultiple.c b/test/test_opendialogmultiple.c
index 37ac23b54..ddc8c0341 100644
--- a/test/test_opendialogmultiple.c
+++ b/test/test_opendialogmultiple.c
@@ -1,4 +1,4 @@
-#include
+#include "nfd.h"
#include
#include
@@ -17,7 +17,7 @@ int main( void )
for ( i = 0; i < NFD_PathSet_GetCount(&pathSet); ++i )
{
nfdchar_t *path = NFD_PathSet_GetPath(&pathSet, i);
- printf("Path %li: %s\n", (int)i, path );
+ printf("Path %i: %s\n", (int)i, path );
}
NFD_PathSet_Free(&pathSet);
}