NetBeans v6.0 C/C++ and Dependencies from Packages

For help with general CEGUI usage:
- Questions about the usage of CEGUI and its features, if not explained in the documentation.
- Problems with the CMAKE configuration or problems occuring during the build process/compilation.
- Errors or unexpected behaviour.

Moderators: CEGUI MVP, CEGUI Team

Rackle
CEGUI Team (Retired)
Posts: 534
Joined: Mon Jan 16, 2006 11:59
Location: Montréal

NetBeans v6.0 C/C++ and Dependencies from Packages

Postby Rackle » Wed Jan 23, 2008 02:04

There are many C/C++ programming environment. Here's yet another but it does not yet compile Cegui. This first post will contain the steps I've taken so far; it'll be updated as solutions are found.

Note that I'm specifying my personal directories rather than generic directories. This allows me to more easily relay the information. Once the complete solution is found a nicer document will be presented.

This thread focuses on obtaining packaged dependencies rather than attempting to build them from their respective source codes.


Netbeans for C development in Windows: Use MinGW rather than Cygwin within Netbeans
http://wiki.sergio-lopes.org/index.php? ... tbeansCinW



Download the following packages from the Cygwin setup utility
Assumes that Cygwin is installed within "C:\Programming\Gnu\cygwin"

Devel
These should have been obtained during the installation of Netbeans:
gcc-core: C compiler
gcc-g++: C++ compiler
gdb: The GNU Debugger
make: the GNU version of the 'make' utility

expat: XML parser library written in C (development/documentation package)
libfreetype2-devel: High-quality sofware font engine (development files)
pcre-devel: Perl-Compatible Regular Expression (development)


Graphics
libjpeg-devel: A library for manipulating JPEG image format files (devel)

Libs
freeglut: OpenSourced alternative to the OpenGL Utility Toolkit (GLUT) library
*libfreetype26: High-quality software font engine (runtime library)
*zlib: The zlib compression and decompression library

* Already selected


These packages cannot be obtained via the Cygwin setup utility:
This bit is for later
Lua
toLua++
Silly
CEGUI


dependencies
Create the directory "C:\Programming\CEGUI\CEGUI_head_netbeans"
Create the file "C:\Programming\CEGUI\CEGUI_head_netbeans\dependencies_gnu.bat" with content:

Code: Select all

@ECHO OFF
CLS

REM Specify the location of the Cegui and Cygwin
SET CEGUI_DEPENDENCIES=C:\Programming\CEGUI\CEGUI_head_netbeans\dependencies
SET CYGWIN=C:\Programming\Gnu\cygwin

RD %CEGUI_DEPENDENCIES% /S /Q

MD %CEGUI_DEPENDENCIES%
MD %CEGUI_DEPENDENCIES%\bin
MD %CEGUI_DEPENDENCIES%\include
MD %CEGUI_DEPENDENCIES%\include\GL
MD %CEGUI_DEPENDENCIES%\lib

COPY %CYGWIN%\usr\share\doc\expat-1.95.8\COPYING %CEGUI_DEPENDENCIES%\EXPAT-LICENSE
COPY %CYGWIN%\usr\include\expat.h %CEGUI_DEPENDENCIES%\include
COPY %CYGWIN%\usr\include\expat_external.h %CEGUI_DEPENDENCIES%\include
COPY %CYGWIN%\lib\libexpat.a %CEGUI_DEPENDENCIES%\lib\libexpatMT_d.lib

COPY %CYGWIN%\usr\X11R6\share\doc\freeglut-2.2.0\COPYING %CEGUI_DEPENDENCIES%\FREEGLUT-LICENSE
XCOPY %CYGWIN%\usr\X11R6\include\GL\*.* %CEGUI_DEPENDENCIES%\include\GL /E /Y /Q
COPY %CYGWIN%\usr\X11R6\lib\libglut.a %CEGUI_DEPENDENCIES%\lib\freeglut_d.lib

COPY %CYGWIN%\usr\share\doc\freetype2-2.3.4\LICENSE.TXT %CEGUI_DEPENDENCIES%\FREETYPE2-LICENSE
COPY %CYGWIN%\usr\include\ft2build.h %CEGUI_DEPENDENCIES%\include
XCOPY %CYGWIN%\usr\include\freetype2\*.* %CEGUI_DEPENDENCIES%\include /E /Y /Q
COPY %CYGWIN%\lib\libfreetype.a %CEGUI_DEPENDENCIES%\lib\freetype221_D.lib

COPY %CYGWIN%\usr\share\doc\pcre-7.2\COPYING  %CEGUI_DEPENDENCIES%\PCRE-LICENSE
COPY %CYGWIN%\usr\include\pcre.h %CEGUI_DEPENDENCIES%\include
COPY %CYGWIN%\lib\libpcre.a %CEGUI_DEPENDENCIES%\lib\pcre_d.lib

COPY %CYGWIN%\lib\libz.a %CEGUI_DEPENDENCIES%\lib\z_d.lib



CEGUI
SVN checkout into the directory: "C:\Programming\CEGUI\CEGUI_head_netbeans"
https://crayzedsgui.svn.sourceforge.net ... _mk2/trunk

Edit C:\Programming\CEGUI\CEGUI_head_netbeans\makefiles\premake\config.lua
* Renderers: only keep OpenGL
* Image Codecs: only keep TGA
* Change DEFAULT_IMAGE_CODEC to "tga"
* XML parsers: only keep expat
* Ensure that the DEFAULT_XML_PARSER is "expat"
* Disable lua
* Samples renderer: only keep OpenGL
* Change SAMPLES_INCLUDED to true

Edit C:\Programming\CEGUI\CEGUI_head_netbeans\makefiles\premake\BaseSystem\premake.lua
* Add: library("z", "_d")

Create the file "C:\Programming\CEGUI\CEGUI_head_netbeans\makefiles\premake\build_gnu.bat" with content:

Code: Select all

premake --file cegui.lua --target gnu
pause


Download premake.exe into "C:\Programming\CEGUI\CEGUI_head_netbeans\makefiles\premake"

Execute "C:\Programming\CEGUI\CEGUI_head_netbeans\makefiles\premake\build_gnu.bat"

Netbeans Configuration
* Open the menu Tools > Options
* Go to the "C/C++" section, in the "Code Assistance" tab, "C++ Compiler" sub-tab
* Add the following macro definitions:
_WIN32
_WINDOWS
Maybe these should only be added to the cegui project

Cegui Project
Open the menu File > New Project > C/C++ > C/C++ Project From Existing Code
* Select the "Using an existing makefile" option
* Specify Existing Makefile "C:/Programming/CEGUI/CEGUI_head_netbeans/makefiles/premake/Makefile"

* Press the Next button until step 3. Build Actions
* Specify the Working Directory "C:/Programming/CEGUI/CEGUI_head_netbeans/makefiles/premake"

* Press the Next button until step 4. Source Files
* Remove the currently specified folder
* Add the "C:\Programming\CEGUI\CEGUI_head_netbeans\include" folder
* Add the "C:\Programming\CEGUI\CEGUI_head_netbeans\src" folder
* Add the "C:\Programming\CEGUI\CEGUI_head_netbeans\dependencies" folder
* Add the "C:\Programming\CEGUI\CEGUI_head_netbeans\Samples" folder

* Press the Next button until step 5. Code Assistance Configuration
* Add the "C:\Programming\CEGUI\CEGUI_head_netbeans\include" folder
* Add the "C:\Programming\CEGUI\CEGUI_head_netbeans\src" folder
* Add the "C:\Programming\CEGUI\CEGUI_head_netbeans\dependencies\include" folder
* Add the "C:\Programming\CEGUI\CEGUI_head_netbeans\Samples\common\include" folder

* Press the Next button until step 6. Project Name and Location
* Specify the Project Name "cegui"
* Specify the Project Location "C:\Programming\CEGUI\CEGUI_head_netbeans\Netbeans"

* Modify include/CEGUIDynamicModule.h as described in: http://www.cegui.org.uk/phpBB2/viewtopi ... 2976#12976

* Right-click on the cegui project and select properties
Navigate to Code assistance > C++ Compiler > General
Specify the preprocessor definition: HAVE_CONFIG_H

* Temporarily (until a better solution) change CEGuiSample.cpp lines 37-38

Code: Select all

from

#if defined( __WIN32__ ) || defined( _WIN32 )
#   include "Win32CEGuiRendererSelector.h"

to

#   include "Win32CEGuiRendererSelector.h"
#if defined( __WIN32__ ) || defined( _WIN32 )


* Temporarily (until a better solution) change Win32CEGuiRedererSelector.h lines 32-35

Code: Select all

from

#if defined( __WIN32__ ) || defined( _WIN32 )
#   define WIN32_LEAN_AND_MEAN
#   include "windows.h"
#endif

to

#   define WIN32_LEAN_AND_MEAN
#   include "windows.h"
#if defined( __WIN32__ ) || defined( _WIN32 )
#endif


* Temporarily (until a better solution) change Win32CEGuiRedererSelector.cpp line 29

Code: Select all

from

#include <tchar.h>

to

// #include <tchar.h>
Last edited by Rackle on Wed Jan 23, 2008 12:21, edited 3 times in total.

Rackle
CEGUI Team (Retired)
Posts: 534
Joined: Mon Jan 16, 2006 11:59
Location: Montréal

Postby Rackle » Wed Jan 23, 2008 02:10

Trying a new approach and already getting problems:

Code: Select all

==== Building CEGUIBase ====
CEGUIFontManager.cpp
In file included from ../../../include/CEGUIFreeTypeFont.h:37,
                 from ../../../src/CEGUIFontManager.cpp:37:
/usr/include/ft2build.h:56:38: freetype/config/ftheader.h: No such file or directory

I'm having difficulties adding the "C:\Programming\Gnu\cygwin\usr\include\freetype2" include directories, which is the root to the missing "freetype/config/ftheader.h" file. Tried both within the C/C++ options and within the project itself. Fun fun fun.

Rackle
CEGUI Team (Retired)
Posts: 534
Joined: Mon Jan 16, 2006 11:59
Location: Montréal

Postby Rackle » Wed Jan 23, 2008 10:47

Solved the previous problem by recreating some of the dependencies directory. New problem

Code: Select all

==== Building CEGUIBase ====
Linking CEGUIBase
../../../dependencies/lib/freetype221_D.lib(ftgzip.o):ftgzip.c:(.text+0x1b5): undefined reference to `_inflateEnd'
../../../dependencies/lib/freetype221_D.lib(ftgzip.o):ftgzip.c:(.text+0x27f): undefined reference to `_inflate'
../../../dependencies/lib/freetype221_D.lib(ftgzip.o):ftgzip.c:(.text+0x44a): undefined reference to `_inflateReset'
../../../dependencies/lib/freetype221_D.lib(ftgzip.o):ftgzip.c:(.text+0x663): undefined reference to `_inflateInit2_'


This was solved by linking libz.a.


Return to “Help”

Who is online

Users browsing this forum: No registered users and 18 guests