commit f5a6aae2a56eca8ea7707a944b016dec0c7c5840
parent 66b727ed15ca45822f4600d0a91b5edf5f591047
Author: cfillion <cfillion@users.noreply.github.com>
Date: Wed, 16 Dec 2015 17:50:13 -0800
setup dual build for both platforms
Diffstat:
5 files changed, 45 insertions(+), 14 deletions(-)
diff --git a/macosx.tup b/macosx.tup
@@ -7,7 +7,7 @@ CXXFLAGS += -fdiagnostics-color -fstack-protector-strong
CXXFLAGS += -pipe -fPIC -O2 -std=c++14
CXXFLAGS += -Ivendor -Ivendor/WDL -Ivendor/WDL/WDL
CXXFLAGS += -DWDL_NO_DEFINE_MINMAX
-CXXFLAGS += -arch @(ARCH)
+CXXFLAGS += -arch @(OSXARCH)
WDLFLAGS := -std=c++98 -w
diff --git a/win32.tup b/win32.tup
@@ -1,21 +1,27 @@
-CXX := cl
-LD := link
-RC := rc
+# wrapper.bat selects which compiler to execute depending on the architecture
+WRAP := cmd /C wrapper.bat @(WINARCH)
+
+CXX := $(WRAP) cl
CXXFLAGS := /nologo /W3 /WX /wd4996 /O2 /EHsc /MT
CXXFLAGS += /Ivendor /Ivendor/WDL /Ivendor/WDL/WDL
-CXXFLAGS += /Ivendor/libcurl/include
+CXXFLAGS += /Ivendor/libcurl_@(WINARCH)/include
CXXFLAGS += /DWDL_NO_DEFINE_MINMAX
CXXFLAGS += /DCURL_STATICLIB
-LDFLAGS := /nologo
-LDFLAGS += user32.lib vendor/libcurl/lib/libcurl_a.lib src/resource.res
+LD := $(WRAP) link
+LDFLAGS := /nologo user32.lib
+LDFLAGS += vendor/libcurl_@(WINARCH)/lib/libcurl_a.lib
+LDFLAGS += $(TUP_VARIANTDIR)/src/resource.res
+
+RC := rc
+RCFLAGS += /nologo /fo $(TUP_VARIANTDIR)/src/resource.res
-SOFLAGS := /DLL /OUT:bin/reaper_reapack.dll
-SOTARGET := bin/reaper_reapack.dll
-SOTARGET += bin/reaper_reapack.lib bin/reaper_reapack.exp
+SOFLAGS := /DLL /OUT:$(TUP_VARIANTDIR)/bin/reaper_reapack_@(WINARCH).dll
+SOTARGET := bin/reaper_reapack_@(WINARCH).dll
+SOTARGET += bin/reaper_reapack_@(WINARCH).lib bin/reaper_reapack_@(WINARCH).exp
-TSFLAGS := /OUT:bin/test.exe
+TSFLAGS := /OUT:$(TUP_VARIANTDIR)/bin/test.exe
TSTARGET := bin/test.exe bin/test.lib bin/test.exp
LINKDEPS := src/resource.res
@@ -23,4 +29,4 @@ LINKDEPS := src/resource.res
!build = |> $(CXX) $(CXXFLAGS) /c %f /Fo%o |>
!link = |> $(LD) $(LDFLAGS) %f |>
-: src/resource.rc |> $(RC) /nologo %f |> src/resource.res
+: src/resource.rc |> $(RC) $(RCFLAGS) %f |> src/resource.res
diff --git a/wrapper.bat b/wrapper.bat
@@ -0,0 +1,23 @@
+@echo off
+
+set arch=%1%
+set program=%2%
+set args=
+
+:next_arg
+if "%3%"=="" goto continue
+set args=%args% %3%
+shift
+goto next_arg
+:continue
+
+if "%arch%"=="x64" (
+ call "%VCINSTALLDIR%\vcvarsall.bat" x86_amd64
+) else ( if "%arch%"=="x86" (
+ call "%VCINSTALLDIR%\vcvarsall.bat" x86
+) else (
+ echo Unknown Architecture: %arch%
+ exit /b 42
+))
+
+"%program%" %args%
diff --git a/x64/tup.config b/x64/tup.config
@@ -1 +1,2 @@
-CONFIG_ARCH=x86_64
+CONFIG_OSXARCH=x86_64
+CONFIG_WINARCH=x64
diff --git a/x86/tup.config b/x86/tup.config
@@ -1 +1,2 @@
-CONFIG_ARCH=i386
+CONFIG_OSXARCH=i386
+CONFIG_WINARCH=x86