From 8e5a132e13587cab84441f232e602df23c7fa5b9 Mon Sep 17 00:00:00 2001 From: Dimitar Trendafilov Date: Thu, 15 Nov 2018 09:41:29 +0200 Subject: Split spasm to lib and executable - added solution folders --- spasm/solution/genie.lua | 15 ++- spasm/solution/spasm.make | 44 +------ spasm/solution/spasm.vcxproj | 19 ++- spasm/solution/spasm.vcxproj.filters | 18 --- spasm/solution/spasm_lib.make | 196 +++++++++++++++++++++++++++++++ spasm/solution/spasm_lib.vcxproj | 131 +++++++++++++++++++++ spasm/solution/spasm_lib.vcxproj.filters | 31 +++++ spasm/solution/sprt.vcxproj | 2 + spasm/solution/sprun.vcxproj | 2 + 9 files changed, 387 insertions(+), 71 deletions(-) create mode 100644 spasm/solution/spasm_lib.make create mode 100644 spasm/solution/spasm_lib.vcxproj create mode 100644 spasm/solution/spasm_lib.vcxproj.filters (limited to 'spasm/solution') diff --git a/spasm/solution/genie.lua b/spasm/solution/genie.lua index b310ad0..d1fb495 100644 --- a/spasm/solution/genie.lua +++ b/spasm/solution/genie.lua @@ -34,11 +34,24 @@ end removefiles '../src/main.cpp' files '../src/*.h' + project 'spasm_lib' + kind 'StaticLib' + language 'C++' + uuid(os.uuid('spasm_lib')) + files '../src/asm/*.cpp' + removefiles { + '../src/asm/main.cpp', + '../src/asm/lexdump.cpp', + '../src/asm/lexdump3.cpp', + } + files '../src/asm/*.h' + project 'spasm' kind 'ConsoleApp' language 'C++' uuid(os.uuid('spasm')) - files '../src/asm/*.cpp' + links 'spasm_lib' + files '../src/asm/main.cpp' removefiles { '../src/asm/lexdump.cpp', '../src/asm/lexdump3.cpp', diff --git a/spasm/solution/spasm.make b/spasm/solution/spasm.make index f2aa890..6c081cc 100644 --- a/spasm/solution/spasm.make +++ b/spasm/solution/spasm.make @@ -54,20 +54,14 @@ ifeq ($(config),debug64) ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -m64 - LDDEPS += + ALL_LDFLAGS += $(LDFLAGS) -L"../../JSImpl/build/bin/Debug" -m64 + LDDEPS += ../../JSImpl/build/bin/Debug/libspasm_lib.a LIBS += $(LDDEPS) EXTERNAL_LIBS += LINKOBJS = $(OBJECTS) LINKCMD = $(CXX) -o $(TARGET) $(LINKOBJS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS) OBJECTS := \ - $(OBJDIR)/src/asm/assembler.o \ - $(OBJDIR)/src/asm/bytecode.o \ - $(OBJDIR)/src/asm/lexer.o \ $(OBJDIR)/src/asm/main.o \ - $(OBJDIR)/src/asm/symbol.o \ - $(OBJDIR)/src/asm/token.o \ - $(OBJDIR)/src/asm/tokenizer.o \ define PREBUILDCMDS endef @@ -89,20 +83,14 @@ ifeq ($(config),release64) ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - ALL_LDFLAGS += $(LDFLAGS) -m64 - LDDEPS += + ALL_LDFLAGS += $(LDFLAGS) -L"../../JSImpl/build/bin/Release" -m64 + LDDEPS += ../../JSImpl/build/bin/Release/libspasm_lib.a LIBS += $(LDDEPS) EXTERNAL_LIBS += LINKOBJS = $(OBJECTS) LINKCMD = $(CXX) -o $(TARGET) $(LINKOBJS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS) OBJECTS := \ - $(OBJDIR)/src/asm/assembler.o \ - $(OBJDIR)/src/asm/bytecode.o \ - $(OBJDIR)/src/asm/lexer.o \ $(OBJDIR)/src/asm/main.o \ - $(OBJDIR)/src/asm/symbol.o \ - $(OBJDIR)/src/asm/token.o \ - $(OBJDIR)/src/asm/tokenizer.o \ define PREBUILDCMDS endef @@ -162,34 +150,10 @@ $(GCH_OBJC): $(PCH) $(MAKEFILE) | $(OBJDIR) $(SILENT) $(CXX) $(ALL_OBJCPPFLAGS) -x objective-c++-header $(DEFINES) $(INCLUDES) -o "$@" -c "$<" endif -$(OBJDIR)/src/asm/assembler.o: ../src/asm/assembler.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/src/asm - @echo $(notdir $<) - $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" - -$(OBJDIR)/src/asm/bytecode.o: ../src/asm/bytecode.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/src/asm - @echo $(notdir $<) - $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" - -$(OBJDIR)/src/asm/lexer.o: ../src/asm/lexer.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/src/asm - @echo $(notdir $<) - $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" - $(OBJDIR)/src/asm/main.o: ../src/asm/main.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/src/asm @echo $(notdir $<) $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" -$(OBJDIR)/src/asm/symbol.o: ../src/asm/symbol.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/src/asm - @echo $(notdir $<) - $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" - -$(OBJDIR)/src/asm/token.o: ../src/asm/token.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/src/asm - @echo $(notdir $<) - $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" - -$(OBJDIR)/src/asm/tokenizer.o: ../src/asm/tokenizer.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/src/asm - @echo $(notdir $<) - $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" - -include $(OBJECTS:%.o=%.d) ifneq (,$(PCH)) -include $(OBJDIR)/$(notdir $(PCH)).d diff --git a/spasm/solution/spasm.vcxproj b/spasm/solution/spasm.vcxproj index e39730e..b0b5718 100644 --- a/spasm/solution/spasm.vcxproj +++ b/spasm/solution/spasm.vcxproj @@ -21,11 +21,13 @@ Application true v140 + x64 Application false v140 + x64 @@ -110,20 +112,13 @@ - - - - - - - - - - - - + + + + {3F16CDE1-AB80-8158-F4BE-32FE60685FAD} + diff --git a/spasm/solution/spasm.vcxproj.filters b/spasm/solution/spasm.vcxproj.filters index 30cc8cb..a9d3fb8 100644 --- a/spasm/solution/spasm.vcxproj.filters +++ b/spasm/solution/spasm.vcxproj.filters @@ -9,26 +9,8 @@ - - src\asm - - - src\asm - - - src\asm - - - src\asm - - - src\asm - src\asm - - src\asm - diff --git a/spasm/solution/spasm_lib.make b/spasm/solution/spasm_lib.make new file mode 100644 index 0000000..94b4322 --- /dev/null +++ b/spasm/solution/spasm_lib.make @@ -0,0 +1,196 @@ +# GNU Make project makefile autogenerated by GENie +ifndef config + config=debug64 +endif + +ifndef verbose + SILENT = @ +endif + +SHELLTYPE := msdos +ifeq (,$(ComSpec)$(COMSPEC)) + SHELLTYPE := posix +endif +ifeq (/bin,$(findstring /bin,$(SHELL))) + SHELLTYPE := posix +endif +ifeq (/bin,$(findstring /bin,$(MAKESHELL))) + SHELLTYPE := posix +endif + +ifeq (posix,$(SHELLTYPE)) + MKDIR = $(SILENT) mkdir -p "$(1)" + COPY = $(SILENT) cp -fR "$(1)" "$(2)" + RM = $(SILENT) rm -f "$(1)" +else + MKDIR = $(SILENT) mkdir "$(subst /,\\,$(1))" 2> nul || exit 0 + COPY = $(SILENT) copy /Y "$(subst /,\\,$(1))" "$(subst /,\\,$(2))" + RM = $(SILENT) del /F "$(subst /,\\,$(1))" 2> nul || exit 0 +endif + +CC = gcc +CXX = g++ +AR = ar + +ifndef RESCOMP + ifdef WINDRES + RESCOMP = $(WINDRES) + else + RESCOMP = windres + endif +endif + +MAKEFILE = spasm_lib.make + +ifeq ($(config),debug64) + OBJDIR = ../../JSImpl/build/obj/Debug/x64/Debug/spasm_lib + TARGETDIR = ../../JSImpl/build/bin/Debug + TARGET = $(TARGETDIR)/libspasm_lib.a + DEFINES += -D_SCL_SECURE_NO_WARNINGS + ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) + ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 + ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 + ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -m64 -std=c++14 + ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) + ALL_LDFLAGS += $(LDFLAGS) -m64 + LDDEPS += + LIBS += $(LDDEPS) + EXTERNAL_LIBS += + LINKOBJS = $(OBJECTS) + LINKCMD = $(AR) -rcs $(TARGET) + OBJECTS := \ + $(OBJDIR)/src/asm/assembler.o \ + $(OBJDIR)/src/asm/bytecode.o \ + $(OBJDIR)/src/asm/lexer.o \ + $(OBJDIR)/src/asm/symbol.o \ + $(OBJDIR)/src/asm/token.o \ + $(OBJDIR)/src/asm/tokenizer.o \ + + define PREBUILDCMDS + endef + define PRELINKCMDS + endef + define POSTBUILDCMDS + endef +endif + +ifeq ($(config),release64) + OBJDIR = ../../JSImpl/build/obj/Release/x64/Release/spasm_lib + TARGETDIR = ../../JSImpl/build/bin/Release + TARGET = $(TARGETDIR)/libspasm_lib.a + DEFINES += -D_SCL_SECURE_NO_WARNINGS + ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES) + ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 + ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 + ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 + ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 + ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Werror -Wall -Wextra -g -O3 -m64 -std=c++14 + ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) + ALL_LDFLAGS += $(LDFLAGS) -m64 + LDDEPS += + LIBS += $(LDDEPS) + EXTERNAL_LIBS += + LINKOBJS = $(OBJECTS) + LINKCMD = $(AR) -rcs $(TARGET) + OBJECTS := \ + $(OBJDIR)/src/asm/assembler.o \ + $(OBJDIR)/src/asm/bytecode.o \ + $(OBJDIR)/src/asm/lexer.o \ + $(OBJDIR)/src/asm/symbol.o \ + $(OBJDIR)/src/asm/token.o \ + $(OBJDIR)/src/asm/tokenizer.o \ + + define PREBUILDCMDS + endef + define PRELINKCMDS + endef + define POSTBUILDCMDS + endef +endif + +OBJDIRS := \ + $(OBJDIR) \ + $(OBJDIR)/src/asm \ + +RESOURCES := \ + +.PHONY: clean prebuild prelink + +all: $(OBJDIRS) $(TARGETDIR) prebuild prelink $(TARGET) + @: + +$(TARGET): $(GCH) $(OBJECTS) $(LDDEPS) $(EXTERNAL_LIBS) $(RESOURCES) | $(TARGETDIR) $(OBJDIRS) + @echo Archiving spasm_lib +ifeq (posix,$(SHELLTYPE)) + $(SILENT) rm -f $(TARGET) +else + $(SILENT) if exist $(subst /,\\,$(TARGET)) del $(subst /,\\,$(TARGET)) +endif + $(SILENT) $(LINKCMD) $(LINKOBJS) + $(POSTBUILDCMDS) + +$(TARGETDIR): + @echo Creating $(TARGETDIR) + -$(call MKDIR,$(TARGETDIR)) + +$(OBJDIRS): + @echo Creating $(@) + -$(call MKDIR,$@) + +clean: + @echo Cleaning spasm_lib +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)) +$(GCH): $(PCH) $(MAKEFILE) | $(OBJDIR) + @echo $(notdir $<) + $(SILENT) $(CXX) $(ALL_CXXFLAGS) -x c++-header $(DEFINES) $(INCLUDES) -o "$@" -c "$<" + +$(GCH_OBJC): $(PCH) $(MAKEFILE) | $(OBJDIR) + @echo $(notdir $<) + $(SILENT) $(CXX) $(ALL_OBJCPPFLAGS) -x objective-c++-header $(DEFINES) $(INCLUDES) -o "$@" -c "$<" +endif + +$(OBJDIR)/src/asm/assembler.o: ../src/asm/assembler.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/src/asm + @echo $(notdir $<) + $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" + +$(OBJDIR)/src/asm/bytecode.o: ../src/asm/bytecode.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/src/asm + @echo $(notdir $<) + $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" + +$(OBJDIR)/src/asm/lexer.o: ../src/asm/lexer.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/src/asm + @echo $(notdir $<) + $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" + +$(OBJDIR)/src/asm/symbol.o: ../src/asm/symbol.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/src/asm + @echo $(notdir $<) + $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" + +$(OBJDIR)/src/asm/token.o: ../src/asm/token.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/src/asm + @echo $(notdir $<) + $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" + +$(OBJDIR)/src/asm/tokenizer.o: ../src/asm/tokenizer.cpp $(GCH) $(MAKEFILE) | $(OBJDIR)/src/asm + @echo $(notdir $<) + $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<" + +-include $(OBJECTS:%.o=%.d) +ifneq (,$(PCH)) + -include $(OBJDIR)/$(notdir $(PCH)).d + -include $(OBJDIR)/$(notdir $(PCH))_objc.d +endif diff --git a/spasm/solution/spasm_lib.vcxproj b/spasm/solution/spasm_lib.vcxproj new file mode 100644 index 0000000..bf3908e --- /dev/null +++ b/spasm/solution/spasm_lib.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + x64 + + + Release + x64 + + + + {3F16CDE1-AB80-8158-F4BE-32FE60685FAD} + spasm_lib + 8.1 + Win32Proj + + + + StaticLibrary + true + v140 + x64 + + + StaticLibrary + false + v140 + x64 + + + + + + + + + + + + + ..\..\JSImpl\build\bin\Debug\ + ..\..\JSImpl\build\obj\Debug\x64\Debug\spasm_lib\ + spasm_lib + .lib + + + ..\..\JSImpl\build\bin\Release\ + ..\..\JSImpl\build\obj\Release\x64\Release\spasm_lib\ + spasm_lib + .lib + + + + %(AdditionalOptions) + Disabled + _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebugDLL + true + true + + Level4 + true + EditAndContinue + $(OutDir)spasm_lib.pdb + + + _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + $(OutDir)spasm_lib.lib + MachineX64 + + + Windows + true + $(OutDir)spasm_lib.pdb + + + + + %(AdditionalOptions) + MaxSpeed + _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + true + + Level4 + true + ProgramDatabase + $(OutDir)spasm_lib.pdb + + + _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + $(OutDir)spasm_lib.lib + MachineX64 + + + Windows + true + $(OutDir)spasm_lib.pdb + true + true + + + + + + + + + + + + + + + + + + + + diff --git a/spasm/solution/spasm_lib.vcxproj.filters b/spasm/solution/spasm_lib.vcxproj.filters new file mode 100644 index 0000000..6415708 --- /dev/null +++ b/spasm/solution/spasm_lib.vcxproj.filters @@ -0,0 +1,31 @@ + + + + + {2DAB880B-99B4-887C-2230-9F7C8E38947C} + + + {6A9848A9-D677-C744-DF8F-521B4BEE2DA6} + + + + + src\asm + + + src\asm + + + src\asm + + + src\asm + + + src\asm + + + src\asm + + + diff --git a/spasm/solution/sprt.vcxproj b/spasm/solution/sprt.vcxproj index 2698c10..bd7f6c0 100644 --- a/spasm/solution/sprt.vcxproj +++ b/spasm/solution/sprt.vcxproj @@ -21,11 +21,13 @@ StaticLibrary true v140 + x64 StaticLibrary false v140 + x64 diff --git a/spasm/solution/sprun.vcxproj b/spasm/solution/sprun.vcxproj index ea923b4..ee6678e 100644 --- a/spasm/solution/sprun.vcxproj +++ b/spasm/solution/sprun.vcxproj @@ -21,11 +21,13 @@ Application true v140 + x64 Application false v140 + x64 -- cgit v1.3.1-23-gd82d