-
Notifications
You must be signed in to change notification settings - Fork 106
Building and hacking
The source tree:
-
commandline
- the command line utility and low-level USB HID layer -
lib
- the dynamic library -
doc
- documentation (see also docum files in other dirs) -
windows-vs
- Stuff specific for Windows:- Visual Studio solution files, projects specific to Windows.
- Windows GUI demo program
-
test
- test scripts for the library and examples
-
Build command:
cd commandline/makemake && make
-
Requirements:
- libusb-devel 0.x
- Standard GCC & make tools package
We do not want to use 3rd party Linux HID libraries instead of libusb, because they are more complicated, and not always available.
Run Visual Studio; open the solution in windows-vs
dir. Solution and project files are specific for each supported VS version. Select desired configuration(s) and hit the Build button.
- Select oldest target OS version in properties of VC++ projects.
- Use the WinXP compatibility option in 32-bit configuration if needed (and why not?). For 64-bit, Win7 is the oldest version. (Vista/2008 users, get updated!)
- Select not to use runtime DLLs
- UAC setting: not needed, run as standard user.
Supported VS versions:
-
VS 2015 Community edition Update 2, and its matching SDK (win10), VS 2015 Express for Desktop
-
VS 2013 Community edition Update 5, and its matching SDK (win8.1)
-
VS 2008, 2010 (or VC++ Express): needs also Windows Driver Kit (WDK) 7.1 or newer for Win7 (not Win8 or Win10!)
-
Optional: Python add-on (PTVS) - for working on Python test scripts
-
Windows with GCC/Mingw: not done.
- Build command:
cd commandline && xcodebuild
- Requirements:
- Xcode 6.1+ and IOKit framework
- Supported versions: Yosemite and newer (what I've tested).
The make-release-xxxx scripts copy build products to a common "release" directory. Each make-release script is for one platform.
Files built on all platforms can then be combined in a single archive. Copying common files (docs, .h files, tests) duplicates in each script (yep, that's bad).
? Make separate downloads for each platform?
- Update to libusb 1.x ?
- Windows: make native .NET library (for VB, Powershell... instead of pinvokes). (Consider this also on Linux with Xamarin?) HELP WANTED.
- Use Cmake to produce makefiles and VC++ projects. HELP WANTED.