aboutsummaryrefslogtreecommitdiff
path: root/winbuild
diff options
context:
space:
mode:
authormwturvey <michael.w.turvey@intel.com>2017-03-17 14:41:59 -0700
committermwturvey <michael.w.turvey@intel.com>2017-03-17 14:41:59 -0700
commitb6981854dff11022e3de56e56cbf4633f1c49598 (patch)
treef5b8f4ff1425f704d791d5b9af9c8af65455868d /winbuild
parent94be8ccdbfb2f44c9bc569428537444030ba8eeb (diff)
parenta53c520c2d1a3bb9faa4cb5e4ee9ccc48bb1835f (diff)
downloadlibsurvive-b6981854dff11022e3de56e56cbf4633f1c49598.tar.gz
libsurvive-b6981854dff11022e3de56e56cbf4633f1c49598.tar.bz2
Merge branch 'master' into UsbTrackerOnWin
# Conflicts: # src/survive_vive.c
Diffstat (limited to 'winbuild')
-rw-r--r--winbuild/build_tcc.bat14
-rw-r--r--winbuild/calibrate/calibrate.vcxproj26
-rw-r--r--winbuild/libsurvive/libsurvive.vcxproj38
-rw-r--r--winbuild/libsurvive/libsurvive.vcxproj.filters26
-rw-r--r--winbuild/tcc_stubs.c59
5 files changed, 129 insertions, 34 deletions
diff --git a/winbuild/build_tcc.bat b/winbuild/build_tcc.bat
new file mode 100644
index 0000000..5be1361
--- /dev/null
+++ b/winbuild/build_tcc.bat
@@ -0,0 +1,14 @@
+@echo off
+
+set TCC=C:\tcc\tcc.exe
+echo Be sure to have TinyCC installed to %TCC% (or change the TCC parameter.)
+
+set SR=..\src\
+set RD=..\redist\
+set SOURCES=%SR%ootx_decoder.c %SR%poser_charlesslow.c %SR%poser_daveortho.c %SR%poser_dummy.c %SR%survive.c %SR%survive_cal.c %SR%survive_config.c %SR%survive_data.c %SR%survive_driverman.c %SR%survive_process.c %SR%survive_vive.c
+set REDIST=%RD%crc32.c %RD%linmath.c %RD%puff.c %RD%jsmn.c %RD%json_helpers.c %RD%symbol_enumerator.c
+set EXEC=..\calibrate.c %RD%CNFGWinDriver.c %RD%os_generic.c %RD%CNFGFunctions.c
+set CFLAGS=-DNOZLIB -DTCC -DWINDOWS -DHIDAPI -DWIN32 -DRUNTIME_SYMNUM -O0 -g -rdynamic -I..\redist -I..\include\libsurvive -I..\src -I.
+set LDFLAGS=-lkernel32 -lgdi32 -luser32 -lsetupapi -ldbghelp
+@echo on
+%TCC% -v %CFLAGS% %SOURCES% %REDIST% %EXEC% %LDFLAGS% tcc_stubs.c %RD%hid-windows.c -o calibrate.exe
diff --git a/winbuild/calibrate/calibrate.vcxproj b/winbuild/calibrate/calibrate.vcxproj
index 13fce78..7a62c14 100644
--- a/winbuild/calibrate/calibrate.vcxproj
+++ b/winbuild/calibrate/calibrate.vcxproj
@@ -30,27 +30,27 @@
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
+ <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
+ <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
+ <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
+ <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -96,7 +96,12 @@
<AdditionalLibraryDirectories>
</AdditionalLibraryDirectories>
<AdditionalDependencies>setupapi.lib;dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <LinkTimeCodeGeneration>UseFastLinkTimeCodeGeneration</LinkTimeCodeGeneration>
</Link>
+ <ProjectReference>
+ <UseLibraryDependencyInputs>true</UseLibraryDependencyInputs>
+ </ProjectReference>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
@@ -114,7 +119,12 @@
<AdditionalDependencies>setupapi.lib;dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ForceSymbolReferences>
</ForceSymbolReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <LinkTimeCodeGeneration>UseFastLinkTimeCodeGeneration</LinkTimeCodeGeneration>
</Link>
+ <ProjectReference>
+ <UseLibraryDependencyInputs>true</UseLibraryDependencyInputs>
+ </ProjectReference>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
@@ -134,7 +144,11 @@
<AdditionalLibraryDirectories>
</AdditionalLibraryDirectories>
<AdditionalDependencies>setupapi.lib;dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
+ <ProjectReference>
+ <UseLibraryDependencyInputs>true</UseLibraryDependencyInputs>
+ </ProjectReference>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
@@ -154,7 +168,11 @@
<AdditionalLibraryDirectories>
</AdditionalLibraryDirectories>
<AdditionalDependencies>setupapi.lib;dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
+ <ProjectReference>
+ <UseLibraryDependencyInputs>true</UseLibraryDependencyInputs>
+ </ProjectReference>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\calibrate.c" />
diff --git a/winbuild/libsurvive/libsurvive.vcxproj b/winbuild/libsurvive/libsurvive.vcxproj
index dc23907..643cff5 100644
--- a/winbuild/libsurvive/libsurvive.vcxproj
+++ b/winbuild/libsurvive/libsurvive.vcxproj
@@ -30,27 +30,27 @@
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
+ <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
+ <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
+ <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
+ <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -77,12 +77,13 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>USE_DOUBLE;MANUAL_REGISTRATION;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>USE_DOUBLE;RUNTIME_SYMNUM;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WINDOWS;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\winbuild;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
</Link>
+ <ProjectReference />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
@@ -90,12 +91,13 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>USE_DOUBLE;MANUAL_REGISTRATION;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>USE_DOUBLE;RUNTIME_SYMNUM;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WINDOWS;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\winbuild;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
</Link>
+ <ProjectReference />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
@@ -105,14 +107,15 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>USE_DOUBLE;MANUAL_REGISTRATION;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>USE_DOUBLE;RUNTIME_SYMNUM;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WINDOWS;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\winbuild;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
+ <ProjectReference />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
@@ -122,28 +125,30 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>USE_DOUBLE;MANUAL_REGISTRATION;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>USE_DOUBLE;RUNTIME_SYMNUM;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WINDOWS;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\winbuild;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
+ <ProjectReference />
</ItemDefinitionGroup>
<ItemGroup>
<Text Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
+ <ClCompile Include="..\..\redist\CNFGFunctions.c" />
+ <ClCompile Include="..\..\redist\CNFGWinDriver.c" />
<ClCompile Include="..\..\redist\crc32.c" />
- <ClCompile Include="..\..\redist\DrawFunctions.c" />
+ <ClCompile Include="..\..\redist\hid-windows.c" />
<ClCompile Include="..\..\redist\jsmn.c" />
<ClCompile Include="..\..\redist\json_helpers.c" />
<ClCompile Include="..\..\redist\linmath.c" />
<ClCompile Include="..\..\redist\os_generic.c" />
<ClCompile Include="..\..\redist\puff.c" />
<ClCompile Include="..\..\redist\symbol_enumerator.c" />
- <ClCompile Include="..\..\redist\WinDriver.c" />
<ClCompile Include="..\..\src\ootx_decoder.c" />
<ClCompile Include="..\..\src\poser_charlesslow.c" />
<ClCompile Include="..\..\src\poser_daveortho.c" />
@@ -156,14 +161,13 @@
<ClCompile Include="..\..\src\survive_process.c" />
<ClCompile Include="..\..\src\survive_usb.c" />
<ClCompile Include="..\..\src\survive_vive.c" />
- <ClCompile Include="..\..\windows\hid.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\include\libsurvive\poser.h" />
<ClInclude Include="..\..\include\libsurvive\survive.h" />
<ClInclude Include="..\..\include\libsurvive\survive_types.h" />
+ <ClInclude Include="..\..\redist\CNFGFunctions.h" />
<ClInclude Include="..\..\redist\crc32.h" />
- <ClInclude Include="..\..\redist\DrawFunctions.h" />
<ClInclude Include="..\..\redist\jsmn.h" />
<ClInclude Include="..\..\redist\json_helpers.h" />
<ClInclude Include="..\..\redist\linmath.h" />
@@ -173,7 +177,7 @@
<ClInclude Include="..\..\src\survive_cal.h" />
<ClInclude Include="..\..\src\survive_config.h" />
<ClInclude Include="..\..\src\survive_internal.h" />
- <ClInclude Include="..\..\windows\hidapi.h" />
+ <ClInclude Include="..\hidapi.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/winbuild/libsurvive/libsurvive.vcxproj.filters b/winbuild/libsurvive/libsurvive.vcxproj.filters
index 370ce14..0bb9d1b 100644
--- a/winbuild/libsurvive/libsurvive.vcxproj.filters
+++ b/winbuild/libsurvive/libsurvive.vcxproj.filters
@@ -60,12 +60,6 @@
<ClCompile Include="..\..\redist\puff.c">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="..\..\redist\DrawFunctions.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\redist\WinDriver.c">
- <Filter>Source Files</Filter>
- </ClCompile>
<ClCompile Include="..\..\redist\json_helpers.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -78,10 +72,16 @@
<ClCompile Include="..\..\redist\symbol_enumerator.c">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="..\..\windows\hid.c">
+ <ClCompile Include="..\..\redist\linmath.c">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="..\..\redist\linmath.c">
+ <ClCompile Include="..\..\redist\hid-windows.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\redist\CNFGFunctions.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\redist\CNFGWinDriver.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
@@ -110,9 +110,6 @@
<ClInclude Include="..\..\redist\os_generic.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="..\..\redist\DrawFunctions.h">
- <Filter>Header Files</Filter>
- </ClInclude>
<ClInclude Include="..\..\redist\json_helpers.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -125,10 +122,13 @@
<ClInclude Include="..\..\redist\symbol_enumerator.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="..\..\windows\hidapi.h">
+ <ClInclude Include="..\..\redist\linmath.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="..\..\redist\linmath.h">
+ <ClInclude Include="..\hidapi.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\redist\CNFGFunctions.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
diff --git a/winbuild/tcc_stubs.c b/winbuild/tcc_stubs.c
new file mode 100644
index 0000000..7872914
--- /dev/null
+++ b/winbuild/tcc_stubs.c
@@ -0,0 +1,59 @@
+
+#include <_mingw.h>
+
+#define REMATH(x) double __cdecl x( double f ); float x##f(float v) { return x(v); }
+
+REMATH( acos );
+REMATH( cos );
+REMATH( sin );
+REMATH( sqrt );
+REMATH( asin );
+
+double __cdecl strtod (const char* str, char** endptr);
+float strtof( const char* str, char** endptr)
+{
+ return strtod( str, endptr );
+}
+
+double __cdecl atan2(double a, double b);
+float atan2f(float a, float b)
+{
+ return atan2( a, b );
+}
+
+//From http://stackoverflow.com/questions/40159892/using-asprintf-on-windows
+int __cdecl vsprintf_s(
+ char *buffer,
+ size_t numberOfElements,
+ const char *format,
+ va_list argptr
+);
+
+int asprintf(char **strp, const char *fmt, ...) {
+ va_list ap;
+ va_start(ap, fmt);
+ int r = vasprintf(strp, fmt, ap);
+ va_end(ap);
+ return r;
+}
+
+int vasprintf(char **strp, const char *fmt, va_list ap) {
+ // _vscprintf tells you how big the buffer needs to be
+ int len = _vscprintf(fmt, ap);
+ if (len == -1) {
+ return -1;
+ }
+ size_t size = (size_t)len + 1;
+ char *str = (char*)malloc(size);
+ if (!str) {
+ return -1;
+ }
+ // _vsprintf_s is the "secure" version of vsprintf
+ int r = vsprintf_s(str, len + 1, fmt, ap);
+ if (r == -1) {
+ free(str);
+ return -1;
+ }
+ *strp = str;
+ return r;
+} \ No newline at end of file