nfoTools

nfoTools
D211101: VCrayApp VC/C++ raylib App DevKit

nfoTools>
dev>D211101>




index.html>
0.0.23 2023-12-28T20:45Z

VCrayApp is a project-folder organization that is useful for creating Microsoft Windows programs using the raysan5/raylib library for graphical applications.

Initial VCrayApp project-folder setup includes confirmation of correct operation that can then be confidently customized for a new project.

1. Overview

VCrayApp provides compilation of raylib apps using the Microsoft Visual C/C++ command-line compiler, CL.exe, along with other freely-available developer tools, including others from Microsoft.

If VCrayApp is found incorporated in a larger project, check for any custom instructions that apply to specific usage in that project.

1.1 Project Files Organization

The expected setup for a VCrayApp-organized project of your own is with the following folder structure (since VCrayApp-0.1.0):

    your-development-files-location\
     |- raylib\                   // folder where raylib release *source* is
     :  ...                       //    extracted
     |- VCrayApp-*semver*.zip     // at the same level, same drive as raylib\
     |- YOUR-PROJECT-FOLDER\      // unzipped VCrayApp-*semver*-folder-renamed
         |- .vscode\              // suggested .vscode settings
         |- app\                  // folder your App is compiled to
         |- cache\                // folder of VCrayApp resources and cached
         |                        //    raylib components
         |- src\                  // recommended location for your source-code
         |                        //    *.c files and header/include files
         |- NOTICE.txt            // licensing and origin of the content
         |                        //    from VCrayApp-*semver*.zip itself
         |- CHANGES-*semver*.txt  // changes from any earlier versions
         |- VCrayApp.bat          // the batch script for compiling your app
         |- VCrayApp-*semver*.txt // *semver* version synopsis and manifest

Semantic versioning is used. E.g., the Alpha release had semver 0.0.0 and was packaged in VCrayApp-0.0.0.zip. Starting with semver 1.0.0 further breaking changes will require a change at the major level, with feature additions at 1.x.0 levels and fixes at 1.x.y levels. The subfolders, .vscode, app\, cache\ and src\ include explanatory *.txt files with regard to the VCrayApp purposes for them.

It is recommended that src\ be for your own source code and app\ include any resources that will be distributed with and accessed by the compiled .exe.

Code examples, other projects, and related tutorials will further demonstrate the VCrayApp arrangement.

Details of this organization and structure of the individual subfolders is provided in D211101a: VCrayApp Setup.

1.2 VCrayApp.bat

Builds of your VCrayApp project’s code are by performing VCrayApp.bat from a developer command prompt. The .bat script will report progress through build stages and also provide diagnostic messages concerning any failures that occur in the .bat operation.

On initial operation of VCrayApp, VCrayApp.bat will verify the setup, compile raylib components into cache, and then demonstrate operation by compiling and operating program VCrayConfirm. This procedure will be performed each time the cache is rebuilt as well as after any failure in having a working cache of raylib components.

Performing command “VCrayApp ?” from a developer command prompt focused on your project folder will provide usage information.

VCrayApp-0.1.0 Usage

Further details of VCrayApp operation are provided in D211101b: VCrayApp Operation.

2. Prerequisites and Dependencies

NOTE: Current materials are now at the beta level, with the VCrayApp 0.1.0 release. It is available for early usage while support materials are updated or added. There will be improved support for novice developers, including demonstration of raylib examples.

For novice developers, the creation of raylib applications can be carried out by compiling the many available raylib\examples and finding additional explanations for the minimum prerequisites. For self-study, other resources should be used to develop familiarity and confidence in the tools to be mastered.

SUCCESSFUL USE OF VCrayAPP REQUIRES CONFIDENT USE OF C LANGUAGE AND A C/C++ LANGUAGE COMPILER for creation of clean programs involving source files, include files, and the interfaces (APIs) of standard libraries as well as the special-purpose raylib libraries. For more on C Language see T060101: C/C++ Programming.

It is assumed that Microsoft Windows 7 Professional or later are used. Thorough VCrayApp testing is with Microsoft Windows 10 latest versions.

Development with VCrayApp and illustration of usage involves the following tools along with confident use of C Language:


The first seven are essential. The remainder or equivalents are recommended. For further details on dependencies, see VCrayApp Setup and VCrayApp Operation. Additional usage of VCrayApp is covered with VCrayApp Verification/Deployment Lifecycle.

VCrayApp is designed to work with versions of Visual Studio that are free for personal use, including the Visual Studio Build Tools (recommended) and the Visual Studio Community editions. Additional levels of Visual Studio can also be used, all via their Native Tools Command Prompt.

No use is made of Visual Studio projects, solutions, and the conventional separation of debug and release builds. With nfoTools, emphasis is on testing and confirmation with the same program that is provided to users along with built-in troubleshooting support as needed. There are additional tips in the available materials.

3. Available Materials

ID Started Status Topic
D211101a 2022-08-18 placeholder VCrayApp Setup
D211101b 2022-08-18 placeholder VCrayApp Operation
D211101c 2022-08-21 placeholder VCrayApp Verification/Deployment Lifecycle
D211101f 2023-04-07 0.0.9 2023-07-14 VCrayApp FAILCODE Messages
       
D211101e 2023-04-10 0.0.4 2023-07-14 VCrayApp 0.1.0 (beta)
D211101d 2022-10-26 0.0.11 2023-07-14 VCrayApp 0.0.0 (alpha)

4. Development

Development within the GitHub orcmid/nfoTools project is at the devKits/WinDev/VCrayApp main branch.

4.1 Principles

4.2 Plan


Discussion about nfoTools is welcome at the Discussion section. Improvements and removal of defects in this particular documentation can be reported and addressed in the Issues section. There are also relevant projects from time to time.

Hard Hat Area You are navigating the nfoTools Project on Github

created 2022-06-10 by orcmid