mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-11-30 08:24:11 +01:00
4181d1de05
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2445 ebee16cc-31ac-478f-84a7-5cbb03baadba |
||
---|---|---|
.. | ||
main.c | ||
main.py | ||
plat.c | ||
plat.h | ||
pmfeatures.h | ||
pmfeatures.py | ||
py2c.bat | ||
pymiteVS2008.sln | ||
pymiteVS2008.vcproj | ||
pymiteVS2010.sln | ||
pymiteVS2010.vcxproj | ||
pymiteVS2010.vcxproj.filters | ||
README | ||
SConscript | ||
stdint.h |
========================== The Windows Sample Project ========================== :Author: Tyler Wilson, based on Desktop by Dean Hall :Id: $Id: README 467 2010-03-26 16:18:49Z bjones460 $ Purpose ------- This is a sample project that demonstrates running interactive Python-on-a-chp on the Windows desktop. This differs from the POSIX version in platform 'desktop' (which is also used for cygwin builds). Building the Project -------------------- The windows files are now checked directly into the Python-on-a-chip subversion trunk. Visual C++ 2008 or 2010 Express Edition --------------------------------------- - I used a simple .bat file to generate the needed _img.c and _nat.c files. This is py2c.bat. Run this before loading or building via the solution file. This is now included as a Pre-Build step in the VS solution files, so running the .bat file is not needed. - Start Visual C++ 2008 or 2010 Express Edition IDE. Open the src\platform\windows\pymiteVS2008.sln or src\platform\windows\pymiteVS2010.sln file. - Build. If successful, go to the next step. If not, send a message to the Python-on-a-chip Google Groups mailing list. - In src\tools\ipm.py, change the PMVM_EXE line to this: PMVM_EXE = "../platform/windows/main.exe" - Open a command prompt, cd to <python-on-a-chip>\src\tools, and perform the execute the following command: python ipm.py --desktop - Go back to Visual Studio, and select Debug. This will attach to the main.exe that was executed in the step above. You can set breakpoints, watch variables, etc.. SCons ----- - Open a regular command prop or "Visual Studio <version> Command Prompt". The VS Command Prompt is located under the Tools section in the start menu. Recent versions (check which ones!) of scons should detect the proper PATH, INCLUDE and LIB values from the Registry. - 'cd' to the root of the pymite directory. - Type 'scons PLATFORM=windows' at the prompt and press <Enter>. Everything should build, and a main.exe created in the src\platform\windows directory Alternative, if you want to build directly from the platform/windows directory, you can use 'scons PLATFORM=windows -u' to build. This will search up the directory tree for the 'master' SConstruct file. - cd to the src/tools directory. In the ipm.py file, you will need to change the PMVM_EXE value to: PMVM_EXE = "../platform/windows/main.exe" - Now simply type 'python ipm.py -f ../platform/windows/pmfeatures.py --desktop' and <Enter> and you should be able to do all the standard PyMite things. Make ---- - Note there is no make or nmake Makefile to build. You can use msbuild to build the Visual Studio Project directly instead. TODO ---- - Instead of the py2c.bat file, use a custom build step in the Visual Studio IDE. DONE - Get the VS Solution and SCons x64 builds working. That is, build native x64 versions of PyMite. - Add some simple Windows-specific extensions to test from within ipm. Version History --------------- - Added a local windows stdint.h. This allows us to use the core vm source code as-is for the Windows build. This could have issues if you try to build with MinGW or other compiler set. Also, will likely break in VS2010, since they should be including a stdint.h. - I used the new pm_features.h to add the needed defines for snprintf. The __DEBUG__ to _DEBUG should also be there too. - Found the magic TARGET_ARCH flag to scons that cleans up the windows SConscipt file quite a bit. This fixes the issues I was having trying to build the x86 version on an x64 host, without having the x64 tools installed. (The scons folks marked this bug as-is [scons versions 2.0 and above fixed this I believe). .. :mode=rest: