Difference between revisions of "DevelopmentEnvironment"

From aHuman Wiki
Jump to: navigation, search
(Automated page entry using MWPush.pl)
Line 57: Line 57:
 
* [[MSVC6|Setup Microsoft Visual C++ 6.0]] - stale due to migration to Codelite
 
* [[MSVC6|Setup Microsoft Visual C++ 6.0]] - stale due to migration to Codelite
 
* [[Codelite|Setup Codelite]] - less convenient than Visual Studio
 
* [[Codelite|Setup Codelite]] - less convenient than Visual Studio
 
== Templates ==
 
 
[[Template:header]]
 
[[SampleTemplate]]
 

Revision as of 01:17, 8 June 2016

Development Environment

@@Home -> DevelopmentEnvironment

deathrow.jpg


Overview

Project framework is based on Visual Studio 2010 Express Edition - free IDE. Subversion is used as a version control system.

How To Setup Development Environment

Finish Joining the Project quest before trying below

Project Structure Guidelines

  • Projects are not directly dependent on each other; if dependencies exist, related interfaces and binaries are copied into target project codebase
  • Virtual folders should correspond to directories, except for below cases
    • if folder contains files of different types - e.g. headers and C++, then we can create virtual folders to separate these types - e.g. "include" directory
    • if folder has too many files to manage - we can split files by folders (but better to split files by subdirectories as well)
  • Any project contains typical directories on top level:
    • src - all sources, including C/C++ headers and body files
    • bin - output files should be redirected to this location
    • build - intermediate files, byproducts of build
    • etc - configuration files if any
    • lib - used libraries
  • any project is included in one or more workspaces
    • project corresponds to the build target
    • workspace corresponds to the deployment target and has name:
"workspace.<deployment target name>"

Upgrading the Development Environment

General IDE requirements:

  • Language is not P-code like Java - these programs work in sandbox and use quite heavy runtime
  • IDE is free
  • Evidence of successful discussion at forum

Usign External Libraries

  • for each research area support several libraries implementing related features
  • each external library should have been committed as is, with all sources
  • customized library should have been specifically marked in the codebase
  • any external library should have wrapper code, functioning as a facade (limiting library scope to only used one and conforming interfaces to aHuman codestyle and design giudelines)

Decommissioned child pages