Permalink
Browse files

1. Migrate build environment from vs2005 to vs2015

2. HOWTO-BuildWindowsNativeCode.txt details the toolchain setup
3. Removed the use of SAGEDEVREL & SAGEDEVDEBUG env. variables
4. Resultant binaries are built in native\Build\Release & Debug
5. Added DirectShow BaseClasses to third_party\Microsoft
6. BaseClasses now built automatically as part of the Solution
  • Loading branch information...
1 parent 1bdf961 commit 57e603fb147b4affc1d2e0b937a99ea83b871a99 Keith Fischer committed Oct 13, 2015
Showing with 46,812 additions and 177 deletions.
  1. +244 −0 HOWTO-BuildWindowsNativeCode.txt
  2. +680 −82 native/SageWorkspace.sln
  3. +137 −0 native/ax/Channel-2/Channel-2.vcxproj
  4. +1 −1 native/ax/Channel-2/Channel.h
  5. +138 −0 native/ax/FileSource/FileSource.vcxproj
  6. +4 −2 native/ax/FileSource/FilterProperties.cpp
  7. +211 −0 native/ax/MpegDeMux-3/MpegDeMux-3.vcxproj
  8. +1 −1 native/ax/MpegDeMux-3/MpegDeMux.def
  9. +163 −0 native/ax/Native2.0/NativeCore.vcxproj
  10. +4 −0 native/ax/Native2.0/NativeCore/DVBPSIParser.c
  11. +9 −3 native/ax/Native2.0/NativeCore/NativeCore.h
  12. +3 −0 native/ax/Native2.0/NativeCore/NativeMemory.c
  13. +4 −0 native/ax/Native2.0/NativeCore/PSIParser.c
  14. +1 −1 native/ax/StrmDeMux/SDeMux.def
  15. +5 −3 native/ax/StrmDeMux/SDeMuxFilter.h
  16. +209 −0 native/ax/StrmDeMux/StrmDeMux.vcxproj
  17. +1 −1 native/ax/TSSplitter2.0/TSSplitter.rc
  18. +180 −0 native/ax/TSSplitter2.0/TSSplitter.vcxproj
  19. +116 −0 native/ax/TSnative/TSnative.vcxproj
  20. +340 −0 native/dll/DShowCapture-2/DShowCapture-2.vcxproj
  21. +1 −1 native/dll/DShowCapture-2/SageDTV.cpp
  22. +298 −0 native/dll/DShowPlayer-2/DShowPlayer.vcxproj
  23. +202 −0 native/dll/DShowTranscode/DShowTranscode.vcxproj
  24. +169 −0 native/dll/DX93D/SageTVDX93D.vcxproj
  25. +170 −0 native/dll/DirecTVSerialControl/DirecTVSerialControl.vcxproj
  26. +178 −0 native/dll/InfraredReceive/SageTVInfraredReceive.vcxproj
  27. +170 −0 native/dll/PVR350OSDPlugin/PVR350OSDPlugin.vcxproj
  28. +155 −0 native/dll/TunerStub/TunerStubDLL.vcxproj
  29. +212 −0 native/dll/Win32DLL/SageTVWin32DLL.vcxproj
  30. +160 −0 native/dll/Win32ShellHook/Win32ShellHook.vcxproj
  31. +2 −2 native/dll/WinKeyboardHook/WinKeyboardHook.def
  32. +160 −0 native/dll/WinKeyboardHook/WinKeyboardHook.vcxproj
  33. +162 −0 native/dll/WinRawInput/WinRawINput.vcxproj
  34. +2 −2 native/dll/WinRawInput/WinRawInput.def
  35. +176 −0 native/exe/MiniClientLauncher/MiniClientLauncher.vcxproj
  36. +8 −10 native/exe/SageLauncher/SageLauncher.rc
  37. +1,003 −0 native/exe/SageLauncher/SageLauncher.vcxproj
  38. +215 −0 native/exe/ServiceControlLaunch/ServiceControlLaunch.vcxproj
  39. BIN third_party/Elecard/MpegAudioEncLayer2/Debug/BuildLog.htm
  40. BIN third_party/Elecard/MpegAudioEncLayer2/Release/BuildLog.htm
  41. +3 −0 third_party/Elecard/MpegAudioEncLayer2/common.h
  42. +0 −65 third_party/Elecard/MpegAudioEncLayer2/dshow.vcproj.BURNS.Narflex.user
  43. +184 −0 third_party/Elecard/MpegAudioEncLayer2/dshow.vcxproj
  44. +163 −0 third_party/Microsoft/AudioSampling/MusicVisFilter.vcxproj
  45. +362 −0 third_party/Microsoft/BaseClasses/BaseClasses.vcxproj
  46. +805 −0 third_party/Microsoft/BaseClasses/_License.htm
  47. +167 −0 third_party/Microsoft/BaseClasses/_Redist.Txt
  48. +6 −0 third_party/Microsoft/BaseClasses/_Source.txt
  49. +111 −0 third_party/Microsoft/BaseClasses/amextra.cpp
  50. +56 −0 third_party/Microsoft/BaseClasses/amextra.h
  51. +5,358 −0 third_party/Microsoft/BaseClasses/amfilter.cpp
  52. +1,587 −0 third_party/Microsoft/BaseClasses/amfilter.h
  53. +275 −0 third_party/Microsoft/BaseClasses/amvideo.cpp
  54. +360 −0 third_party/Microsoft/BaseClasses/arithutil.cpp
  55. +40 −0 third_party/Microsoft/BaseClasses/baseclasses.sln
  56. +38 −0 third_party/Microsoft/BaseClasses/baseclasses.sln_vs2005
  57. +826 −0 third_party/Microsoft/BaseClasses/baseclasses.vcproj
  58. +74 −0 third_party/Microsoft/BaseClasses/cache.h
  59. +120 −0 third_party/Microsoft/BaseClasses/checkbmi.h
  60. +265 −0 third_party/Microsoft/BaseClasses/combase.cpp
  61. +305 −0 third_party/Microsoft/BaseClasses/combase.h
  62. +383 −0 third_party/Microsoft/BaseClasses/cprop.cpp
  63. +95 −0 third_party/Microsoft/BaseClasses/cprop.h
  64. +2,541 −0 third_party/Microsoft/BaseClasses/ctlutil.cpp
  65. +923 −0 third_party/Microsoft/BaseClasses/ctlutil.h
  66. +129 −0 third_party/Microsoft/BaseClasses/ddmm.cpp
  67. +28 −0 third_party/Microsoft/BaseClasses/ddmm.h
  68. +367 −0 third_party/Microsoft/BaseClasses/dllentry.cpp
  69. +693 −0 third_party/Microsoft/BaseClasses/dllsetup.cpp
  70. +46 −0 third_party/Microsoft/BaseClasses/dllsetup.h
  71. +250 −0 third_party/Microsoft/BaseClasses/dxmperf.h
  72. +101 −0 third_party/Microsoft/BaseClasses/fourcc.h
  73. +222 −0 third_party/Microsoft/BaseClasses/measure.h
  74. +120 −0 third_party/Microsoft/BaseClasses/msgthrd.h
  75. +478 −0 third_party/Microsoft/BaseClasses/mtype.cpp
  76. +89 −0 third_party/Microsoft/BaseClasses/mtype.h
  77. +801 −0 third_party/Microsoft/BaseClasses/outputq.cpp
  78. +137 −0 third_party/Microsoft/BaseClasses/outputq.h
  79. +347 −0 third_party/Microsoft/BaseClasses/perflog.cpp
  80. +56 −0 third_party/Microsoft/BaseClasses/perflog.h
  81. +194 −0 third_party/Microsoft/BaseClasses/perfstruct.h
  82. +197 −0 third_party/Microsoft/BaseClasses/pstream.cpp
  83. +114 −0 third_party/Microsoft/BaseClasses/pstream.h
  84. +588 −0 third_party/Microsoft/BaseClasses/pullpin.cpp
  85. +152 −0 third_party/Microsoft/BaseClasses/pullpin.h
  86. +402 −0 third_party/Microsoft/BaseClasses/refclock.cpp
  87. +184 −0 third_party/Microsoft/BaseClasses/refclock.h
  88. +116 −0 third_party/Microsoft/BaseClasses/reftime.h
  89. +2,858 −0 third_party/Microsoft/BaseClasses/renbase.cpp
  90. +478 −0 third_party/Microsoft/BaseClasses/renbase.h
  91. +284 −0 third_party/Microsoft/BaseClasses/schedule.cpp
  92. +128 −0 third_party/Microsoft/BaseClasses/schedule.h
  93. +83 −0 third_party/Microsoft/BaseClasses/seekpt.cpp
  94. +30 −0 third_party/Microsoft/BaseClasses/seekpt.h
  95. +522 −0 third_party/Microsoft/BaseClasses/source.cpp
  96. +172 −0 third_party/Microsoft/BaseClasses/source.h
  97. +202 −0 third_party/Microsoft/BaseClasses/streams.h
  98. +402 −0 third_party/Microsoft/BaseClasses/strmctl.cpp
  99. +157 −0 third_party/Microsoft/BaseClasses/strmctl.h
  100. +74 −0 third_party/Microsoft/BaseClasses/sysclock.cpp
  101. +39 −0 third_party/Microsoft/BaseClasses/sysclock.h
  102. +1,016 −0 third_party/Microsoft/BaseClasses/transfrm.cpp
  103. +304 −0 third_party/Microsoft/BaseClasses/transfrm.h
  104. +974 −0 third_party/Microsoft/BaseClasses/transip.cpp
  105. +250 −0 third_party/Microsoft/BaseClasses/transip.h
  106. +746 −0 third_party/Microsoft/BaseClasses/videoctl.cpp
  107. +168 −0 third_party/Microsoft/BaseClasses/videoctl.h
  108. +468 −0 third_party/Microsoft/BaseClasses/vtrans.cpp
  109. +143 −0 third_party/Microsoft/BaseClasses/vtrans.h
  110. +2,081 −0 third_party/Microsoft/BaseClasses/winctrl.cpp
  111. +224 −0 third_party/Microsoft/BaseClasses/winctrl.h
  112. +2,746 −0 third_party/Microsoft/BaseClasses/winutil.cpp
  113. +419 −0 third_party/Microsoft/BaseClasses/winutil.h
  114. +1,474 −0 third_party/Microsoft/BaseClasses/wxdebug.cpp
  115. +359 −0 third_party/Microsoft/BaseClasses/wxdebug.h
  116. +891 −0 third_party/Microsoft/BaseClasses/wxlist.cpp
  117. +553 −0 third_party/Microsoft/BaseClasses/wxlist.h
  118. +769 −0 third_party/Microsoft/BaseClasses/wxutil.cpp
  119. +532 −0 third_party/Microsoft/BaseClasses/wxutil.h
  120. +179 −0 third_party/Microsoft/Dump/MPEG2Dump.vcxproj
  121. +147 −0 third_party/Microsoft/EVRPresenter/EVRPresenter.vcxproj
  122. +171 −0 third_party/Microsoft/MpegMux/MpegMux.vcxproj
  123. +4 −0 third_party/codecs/faac/common/mp4v2/mpeg4ip.h
  124. +1 −1 third_party/codecs/lame/libmp3lame/id3tag.c
  125. +4 −0 third_party/codecs/x264/common/osdep.h
  126. +6 −2 third_party/codecs/xvidcore/src/portab.h
  127. +2 −0 third_party/mplayer/libavutil/internal.h
@@ -0,0 +1,244 @@
+
+------------------
+---- Overview ----
+------------------
+
+This document details how to setup the build environment for
+Sagetv Open Source, using Visual Studio 2015, for the purpose
+of building Windows "native" (non-Java) code. It assumes a Windows
+computer with no previous installation of the tools listed below.
+
+Installation requires a number of system reboots, so be prepared
+and do not skip the reboots.
+
+The process involves the following steps:
+
+1. Install JDK
+2. Install GitHub Desktop (optional)
+3. Install DirectX SDK
+4. Install SDK 6.1
+5. Install Visual Studio 2015
+6. Build SageTv Windows native code
+
+
+=====================================================================
+1. Install JDK
+=====================================================================
+
+Info:
+ In deciding between installing the 32-bit vs. 64-bit
+ version of JDK, consider that prior to SageOpenSource, SageTv
+ was originally built using the 32-bit version of Java.
+ To avoid unforseen issues it may be wise to start with a 32-bit
+ JDK installation for initial development.
+
+
+Steps:
+------
+A) Download the Java Development Kit.
+
+ Available here:
+http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
+
+B) Install the Java Development Kit.
+ Note the folder that it's installed to.
+
+C) Create the following Environment Variable:
+ SAGEDEVJDK
+
+ It's value should be the path to where JDK was installed, i.e.,
+ something like:
+ C:\Program Files (x86)\Java\jdk1.8.0_60
+
+ Do NOT quote the path, even though it may contain embedded spaces.
+
+
+=====================================================================
+2. Install GitHub Desktop
+=====================================================================
+
+Info:
+-----
+ GitHub Desktop is used to access the Sage source-code repository.
+
+ Use of GitHub Desktop is optional. It's also possible to download
+ source code via the web interface, at:
+ https://github.com/google/sagetv
+
+GitHub Desktop can be downloaded from:
+ https://desktop.github.com/
+
+
+=====================================================================
+3. Install "DirectX SDK June 2010" edition
+=====================================================================
+
+Info:
+-----
+ "DirectX SDK June 2010" provides needed libraries to build Sage
+ Microsoft has announced that this is it's final release.
+
+Steps:
+-----
+A) Download Microsoft's "DirectX SDK June 2010" edition.
+ It can be found at:
+ http://www.microsoft.com/en-us/download/details.aspx?id=6812
+
+B) Run the installer
+
+--> At installation, choose to include "Direct X symbol files"
+ (if this step is missed, re-run the installer again and
+ check this option)
+
+
+ The installer automatically adds DXSDK_DIR to the **System**
+ environment variables. On a 64-bit OS, DXSDK_DIR points to:
+ C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)
+
+C) Verify DXSDK_DIR env. variable is set (in System env. vars.)
+
+
+=====================================================================
+4. Install SDK6.1
+=====================================================================
+
+Steps:
+-----
+A) Download the installer from:
+ http://www.microsoft.com/en-us/download/details.aspx?id=11310
+
+B) Launch the installer
+ (the bulk of the actual installation is downloaded)
+
+ Accept the installer's default destinations, e.g.:
+ Destination folder:
+ C:\Program Files\Microsoft SDKs\Windows\v6.1
+
+ Destination folder for Samples:
+ C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples
+
+ Wait for "Installation finished OK."
+
+C) Create an environment variable:
+ WINDOWS61SDK
+ It's value should be the path to where the SDK was installed, i.e.,
+ C:\Program Files\Microsoft SDKs\Windows\v6.1
+ Do NOT quote the path, even though it may contain embedded spaces.
+
+D) Run Windows update, get updates for the SDK
+
+E) Reboot, if requested
+
+
+=====================================================================
+5. Install VS2015 (aka vs14)
+=====================================================================
+Visual Studio 2015 provides an IDE for working native code. It also
+included necessary libraries and compile tools.
+
+
+A) Download from:
+ https://www.visualstudio.com/products/visual-studio-community-vs
+
+B) Save the file (vs_community.exe)
+
+C) Launch the downloaded file (runs the installer)
+
+Visual Studio Community 2015 window opens:
+ Accept the default installation location
+ e.g. C:\Program Files (x86)\Microsoft Visual Studio 14.0
+
+ "Choose the type of installation"
+ select "Custom"
+
+ Click "Next" button
+
+ At the Select Features window,
+ Select the following features **in addition** to the defaults:
+ Programming Languages
+ Select "Visual C++"
+ This automatically selects:
+ Common Tools for Visual C++ 2015
+ Microsoft Foundation Classes for C++ <<-- Must have y!!!
+ Windows XP Support for C++
+
+ Common Tools
+ Select "Git for Windows"
+ Select "GitHub Extension for Visual Studio"
+
+ Click "Next" button
+ Click "Install" button
+
+ (the installer runs... can take almost an hour)
+
+ Wait for "Setup Completed"
+
+ Click "Restart Now" button
+
+Note: You can re-run the installer again later to add or change
+ the installation options.
+
+
+=====================================================================
+6. Build SageTv Windows native code
+=====================================================================
+
+We're finally ready to build Windows "native" (non-Java) code.
+
+Prerequisites:
+-----
+ - JDK installed.
+ - DirectX SDK, SDK6.1 & Visual Studio installed and configured
+ - Environment variables set:
+ DXSDK_DIR
+ SAGEDEVJDK
+ WINDOWS61SDK
+
+Steps:
+-----
+A) Verify that the above environment variables have been set.
+ Visual Studio needs them all to build the Solution.
+ - Open a Command Prompt window.
+ - Type "set".
+ - Verify the variables listed above.
+
+B) Use Git to get a local copy of the repository onto your computer.
+
+C) After cloning the repository, use Windows Explorer to open
+ up a window to your local copy where the sources are stored.
+
+D) Locate the SageWorkspace.sln file. It will be in:
+ <your_local_GitHub_path>\sagetv\native
+
+ Double-click on the SageWorkspace.sln file to launch Studio and
+ load all the child Projects.
+
+ The first time Studio is launched to access the Solution, you
+ might encounter a series of questions about source control.
+ Answer them.
+
+E) Build the Solution:
+ - On the Studio menu bar, ensure "Release" and "Win32" is chosen.
+ - In the Solution Explorer sub-window, highlight SageWorkspace.
+ - Right-click SageLauncher, select "Build"
+
+ The resultant files will be in native\Build\Release & Debug
+
+
+Common build failures:
+-----------------------
+* "RC1015: cannot open include file 'afxres.h' "
+ Re-run the VS2015 installer and verify that MS Foundation Classes
+ were installed.
+
+* "fatal error C1083: Cannot open include file: 'qedit.h' "
+ This occurs if WINDOWS61SDK is missing or incorrect
+
+* "can't find jvm.lib"
+ This occurs if SAGEDEVJDK is missing or incorrect
+
+* "fatal error C1083: Cannot open include file: 'D3dX9.h' "
+ This occurs if DXSDK_DIR is missing or incorrect
+
+
+
Oops, something went wrong.

0 comments on commit 57e603f

Please sign in to comment.