Merge branch 'macos-bundle'

Conflicts:
	Core/GDCore/DocMainPage.h
This commit is contained in:
Florian Rival
2015-04-03 11:20:05 +13:00
83 changed files with 1958 additions and 4123 deletions

4
.gitignore vendored
View File

@@ -30,6 +30,9 @@
Binaries/Packaging/debian-source-package/gdevelop/
Binaries/Packaging/opensuse-build-service/gdevelop/
Binaries/Packaging/opensuse-build-service/final/
Binaries/Packaging/GDevelop.app/Contents/Frameworks
Binaries/Packaging/GDevelop.app/Contents/Resources
Binaries/Packaging/logs
/WebIDE
*.depend
*.layout
@@ -49,6 +52,7 @@ Binaries/Packaging/opensuse-build-service/final/
/Binaries/Output/Release_Linux/**
/Binaries/Output/Debug_Darwin/**
/Binaries/Output/Release_Darwin/**
/Binaries/Output/Frameworks/
!/Binaries/Output/Release_Linux/StartGDevelop.sh
!/Binaries/Output/Release_Linux/CppPlatform/
/Binaries/**/MinGW32

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDisplayName</key>
<string>GDevelop</string>
<key>CFBundleExecutable</key>
<string>GDIDELauncher.sh</string>
<key>CFBundleIconFile</key>
<string>icon.ico</string>
<key>CFBundleIdentifier</key>
<string>com.gdevelop.gdide</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>GDevelop</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSMinimumSystemVersion</key>
<string>10.6</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>

View File

@@ -0,0 +1,5 @@
#! /bin/sh
cd "$(dirname "$0")"
cd ../Resources
./GDIDE 2>~/Desktop/result.txt

View File

@@ -0,0 +1,46 @@
#!/bin/sh
#Simply copy the entire GDevelop release directory into the bundle...
rm -rf GDevelop.app/Contents/Resources
mkdir -p GDevelop.app/Contents/Resources
cp -r ../Output/Release_Darwin/ GDevelop.app/Contents/Resources/
cp -rf ../../ExtLibs/SFML/extlibs/libs-osx/Frameworks GDevelop.app/Contents/
type dylibbundler >/dev/null 2>&1 || { echo >&2 "Can't find dylibbundler, required to change libraries install names. Aborting..."; exit 1; }
#...and modify the internal paths to wxWidgets libraries:
#they are hardcoded in the executable (to /usr/local/lib or wherever they
#are installed).
#We use dylibbundler, that call install_name_tool to update the path to
#the external libs we depend one (i.e: wxWidgets). It also copy these
#libs into the 'libs' folder.
cd GDevelop.app/Contents/Resources/
echo . | dylibbundler -x GDIDE -b -cd -od -of -p '@executable_path/' > /dev/null
mv libs/* .
rm -rf libs
#Do the same for GDCore and GDCpp.
#We don't need -b flag anymore as all external libs have already being copied.
echo . | dylibbundler -x libGDCpp.dylib -cd -od -of -p '@executable_path/' > /dev/null
echo . | dylibbundler -x libGDCore.dylib -cd -od -of -p '@executable_path/' > /dev/null
#Do the same for GDJS
cat <<EOF | dylibbundler -x JsPlatform/libGDJS.dylib -cd -od -of -p '@executable_path/' > /dev/null
JsPlatform
.
quit
EOF
#Do the same for all extensions
for file in `ls CppPlatform/Extensions/*.xgde`
do
echo "Updating libraries for $file..."
cat <<EOF | dylibbundler -x $file -cd -od -of -p '@executable_path/' > /dev/null
JsPlatform
CppPlatform/Extensions/
.
JsPlatform
CppPlatform/Extensions/
.
quit
EOF
done

View File

@@ -0,0 +1,53 @@
@echo off > %TEMP%\#
md logs
setLocal EnableDelayedExpansion
echo Script for packaging GDevelop for Windows
echo.
::Try to find Inno Setup
set INNOSETUP_EXE=C:\Program Files (x86)\Inno Setup 5\ISCC.exe
IF NOT EXIST "%INNOSETUP_EXE%" set INNOSETUP_EXE=C:\Program Files\Inno Setup 5\ISCC.exe
IF EXIST "%INNOSETUP_EXE%" (
echo "Note: InnoSetup found at %INNOSETUP_EXE%"
) ELSE (
echo Warning: InnoSetup not found! Skipping installer creation.
SET SKIPINSTALLER=1
)
echo Please ensure that locale directory is up to date with latest translations.
pause
echo Compiling Release target...
cd ..
IF EXIST "build" (
cd build
mingw32-make -j 4
cd ..
) ELSE (
echo Unable to find build directory, just make sure that GD is compiled inside Release_Windows
)
echo.
echo --Removing useless files...
del Output\Release_Windows\Examples\*.gdg.autosave > NUL 2> NUL
del Output\Release_Windows\log.txt > NUL 2> NUL
echo.
echo --Creating installer...
IF NOT "%SKIPINSTALLER%"=="1" "C:\Program Files (x86)\Inno Setup 5\ISCC.exe" Releases\InnoSetupInstallerScript.iss /Q
IF "%SKIPINSTALLER%"=="1" echo (Skipped)
echo.
echo --Creating archive...
if exist Releases\gd3xxxx.zip (del Releases\gd3xxxx.zip)
cd Output\Release_Windows\
IF NOT "%SKIPINSTALLERANDARCHIVE%"=="1" "..\..\..\ExtLibs\7za.exe" a ..\..\Releases\gd3xxxx.zip * > ..\..\Packaging\logs\zipArchiveLog.txt
IF "%SKIPINSTALLERANDARCHIVE%"=="1" echo (Skipped)
cd ..\..\..
echo. >CON
echo Finished. Do not forget to : >CON
echo -Update news.txt >CON
echo -Update pad file >CON
pause >CON

View File

@@ -1,5 +1,2 @@
This directory is used to package GDevelop for linux targets.
For Windows, packaging is made using Inno Setup, see the Binaries/Releases directory.
For all systems, the packaging scripts should be called by the main script
doing the full release procedure (see the root scripts directory).
This directory contains scripts used to package GDevelop.
For Windows, packaging is made using Inno Setup, please ensure you have it installed.

View File

@@ -21,7 +21,11 @@ gd_set_option(NO_GUI FALSE BOOL "TRUE to build without wxWidgets GUI")
#Setting up installation directory, for Linux. (Has to be done before "project" command)
IF(NOT WIN32)
if (NOT APPLE)
gd_set_option(GD_INSTALL_PREFIX "/opt/gdevelop/" STRING "The directory where GDevelop should be installed")
ELSE()
gd_set_option(GD_INSTALL_PREFIX "." STRING "The directory where GDevelop should be installed")
ENDIF()
#As we embed SFML, prevent it to be installed system-wide
set(CMAKE_INSTALL_PREFIX "${GD_INSTALL_PREFIX}/useless")
@@ -34,6 +38,9 @@ IF(NOT WIN32 AND NOT APPLE AND NOT BUILD_TESTS)
ENDIF()
IF(APPLE)
set(CMAKE_MACOSX_RPATH 1)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
set(CMAKE_INSTALL_RPATH ".")
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_WCHAR_H_CPLUSPLUS_98_CONFORMANCE_")
ENDIF()
@@ -41,9 +48,6 @@ ENDIF()
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
IF(NOT WIN32 AND CMAKE_COMPILER_IS_GNUCXX)
SET(CMAKE_SHARED_LINKER_FLAGS "-s") #Force stripping to avoid errors when packaging for linux.
ENDIF()
ENDIF()
IF (EMSCRIPTEN)
set(NO_GUI TRUE CACHE BOOL "" FORCE) #Force disable gui when compiling with emscripten.
@@ -51,6 +55,13 @@ IF (EMSCRIPTEN)
set(BUILD_IDE FALSE CACHE BOOL "" FORCE) #Force disable IDE when compiling with emscripten.
ENDIF()
IF("${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND NOT WIN32 AND CMAKE_COMPILER_IS_GNUCXX)
SET(CMAKE_SHARED_LINKER_FLAGS "-s") #Force stripping to avoid errors when packaging for linux.
ENDIF()
if(EMSCRIPTEN) #When compiling for the web, ensure we get no warning when using our own external libraries.
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --bind -Wno-warn-absolute-paths" )
ENDIF()
#Activate C++11
include(CheckCXXCompilerFlag)
@@ -64,6 +75,9 @@ else()
message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support (with GNU extensions). Please use a different C++ compiler.")
endif()
#Define common directories:
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR})
#Add all the CMakeLists:
ADD_SUBDIRECTORY(ExtLibs)
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Core/CMakeLists.txt" AND BUILD_CORE)
@@ -78,11 +92,9 @@ ENDIF()
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/IDE/CMakeLists.txt" AND BUILD_IDE)
ADD_SUBDIRECTORY(IDE)
ENDIF()
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/WebIDE/CMakeLists.txt" AND EMSCRIPTEN)
ADD_SUBDIRECTORY(WebIDE)
ENDIF()
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Extensions/CMakeLists.txt" AND BUILD_EXTENSIONS)
ADD_SUBDIRECTORY(Extensions)
ENDIF()
IF (EMSCRIPTEN)
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/WebIDE/CMakeLists.txt")
ADD_SUBDIRECTORY(WebIDE)
ENDIF()
ENDIF()

View File

@@ -8,39 +8,16 @@ SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS 1)
SET(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES 1)
SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES 1)
#Sanity checks
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
if(EMSCRIPTEN) #When compiling for the web, ensure we get no warning when using our own external libraries.
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-warn-absolute-paths --bind" )
ENDIF()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/..)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
#Define common directories:
set(GDCORE_include_dir ${GD_base_dir}/Core PARENT_SCOPE)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME} PARENT_SCOPE)
#Dependencies on external libraries:
###
include_directories(${sfml_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSEIF (NOT NO_GUI)
ELSEIF (NOT EMSCRIPTEN AND NOT NO_GUI)
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
@@ -100,12 +77,11 @@ ENDIF()
add_library(GDCore SHARED ${source_files})
IF(EMSCRIPTEN)
set_target_properties(GDCore PROPERTIES SUFFIX ".bc")
ENDIF()
IF(WIN32)
ELSEIF(WIN32)
set_target_properties(GDCore PROPERTIES PREFIX "")
ELSE()
set_target_properties(GDCore PROPERTIES PREFIX "lib")
ENDIF(WIN32)
ENDIF()
set(LIBRARY_OUTPUT_PATH ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(ARCHIVE_OUTPUT_PATH ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(RUNTIME_OUTPUT_PATH ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
@@ -115,19 +91,9 @@ set(RUNTIME_OUTPUT_PATH ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMA
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(GDCore sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(WIN32)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(GDCore ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(GDCore ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(GDCore ws2_32 user32 opengl32 glu32 psapi)
ELSE ()
target_link_libraries(GDCore ${wxWidgets_LIBRARIES})
target_link_libraries(GDCore ${GTK_LIBRARIES})
ENDIF()
target_link_libraries(GDCore ${sfml_LIBRARIES})
target_link_libraries(GDCore ${wxWidgets_LIBRARIES})
target_link_libraries(GDCore ${GTK_LIBRARIES})
ENDIF()
#Tests
@@ -138,12 +104,11 @@ if(BUILD_TESTS)
test_source_files
tests/*
)
add_executable(GDCore_tests ${test_source_files})
set_target_properties(GDCore_tests PROPERTIES BUILD_WITH_INSTALL_RPATH FALSE) #Allow finding dependencies directly from build path on Mac OS X.
target_link_libraries(GDCore_tests GDCore)
target_link_libraries(GDCore_tests sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF (NOT APPLE)
target_link_libraries(GDCore_tests GLU GL)
ENDIF()
target_link_libraries(GDCore_tests ${sfml_LIBRARIES})
target_link_libraries(GDCore_tests ${wxWidgets_LIBRARIES})
target_link_libraries(GDCore_tests ${GTK_LIBRARIES})
endif()

View File

@@ -785,7 +785,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsBaseObjectExtension(gd:
extension.AddCondition("CollisionNP", //"CollisionNP" cames from an old condition to test collision between two sprites non precisely.
_("Collision"),
_("Test the collision between two objects using their collision mask.\nNote that some objects may not have a collision mask.\nSome others, like Sprite, provide also more precise collision conditions."),
_("_PARAM0_ is in collision with _PARAM1_ ( Collision masks )"),
_("_PARAM0_ is in collision with _PARAM1_"),
_("Collision"),
"res/conditions/collision24.png",
"res/conditions/collision.png")

View File

@@ -37,9 +37,10 @@
*
* If you didn't already downloaded GDevelop, get and extract the source from [GitHub](https://github.com/4ian/GD).
*
* Follow these steps to be able to compile GDevelop, it's super easy:
*
* <b>Windows</b>
*
* Follow these three steps to be able to compile GDevelop and the extensions:
* -# \subpage installWinCompiler
* -# \ref installAndUseCMake
* <br>
@@ -48,6 +49,10 @@
* -# \subpage installLinuxLib
* -# \subpage installAndUseCMake
*
* <b>OS X</b>
* -# \subpage installMacOSTools
* -# \ref installAndUseCMake
*
* See the recommended tools and conventions for working on GDevelop on this page:
* \subpage recommendedToolsAndConventions
*/
@@ -91,24 +96,27 @@
/**
* \page installAndUseCMake (All) Install CMake & launch the build
*
* Building is done using CMake: It is an open-source build system that can generate build files for lots of IDE and build tools (Makefiles...).
* Building is done using CMake: it is an open-source build system that can generate build files for lots of IDE and build tools (Makefiles...).
*
* \section installAndUseCMake_download Download and install CMake
*
* First, install CMake:
* Download it [here](http://www.cmake.org/cmake/resources/software.html) or get it using your package manager if you're
* using a Linux distribution.
* Download it [here](http://www.cmake.org/cmake/resources/software.html) for Windows, get it using your package manager if you're
* using a Linux distribution or using Homebrew for Mac OS X.
*
* \section installAndUseCMake_use Using CMake to generate the build files
* Using CMake is not difficult and require only a few clicks/commands to enter. Windows users may use
* the GUI as shown in the next section. Linux and Mac OS X users may prefer to use the command line as shown
* as the end of this page.
*
* \subsection installAndUseCMake_use_gui Using the GUI
*
* - Start the CMake user interface (_cmake-gui_). Choose the GD root directory as the source directory, and Binaries/.build as the directory where to build the binaries:
* - Start the CMake user interface (_cmake-gui_). Choose the GD root directory as the source directory, and Binaries/build as the directory where to build the binaries:
\image html usecmake1.png
* - Click on *Configure*. If asked to create the build directory, answer yes. Choose then your favorite generator: *MinGW Makefiles* (on Windows) or *Unix Makefiles* (on Linux) generate a traditional Makefile that can be built using the
* *mingw32-make* (on Windows) or *make* (on Linux) command. You can also choose the *Ninja* generator to use the [Ninja build system](http://martine.github.io/ninja/).
* - Click on *Configure*. If asked to create the build directory, answer yes. Choose then your favorite generator: *MinGW Makefiles* (on Windows) or *Unix Makefiles* (on Linux/OS X) generate a traditional Makefile that can be built using the
* *mingw32-make* (on Windows) or *make* (on Linux/OS X) command. You can also choose the *Ninja* generator to use the [Ninja build system](http://martine.github.io/ninja/).
\image html usecmake2.png
@@ -117,26 +125,28 @@
\image html usecmake3.png
* - You can then launch a terminal/command prompt, go to the .build folder ( `cd GDRootFolder/Binaries/.build` ) and launch the build
* using the generator you've choosen: `mingw32-make`, or `make` on Linux.
* - You can then launch a terminal/command prompt, go to the build folder (`cd path/to/GD/Binaries/build`) and launch the build
* using the generator you've choosen: `mingw32-make`, or `make` on Linux/OS X.
*
* \subsection installAndUseCMake_use_cmd Using the command line
*
* Using the commandline with CMake is also easy:
*
* ~~~~~~~~~~~~~~~~~~~~~
* cd GDRootFolder/Binaries
* mkdir .build
* cd .build
* cmake ../.. -G "MinGW Makefiles"
* mingw32-make
* cd /path/to/GD/Binaries
* mkdir build
* cd build
* cmake ../..
* make
* ~~~~~~~~~~~~~~~~~~~~~
*
* For Windows, replace `cmake ../..` by `cmake ../.. -G "MinGW Makefiles"` and `make` by `mingw32-make`.
*
* or using the fast [Ninja build system](http://martine.github.io/ninja/) :
* ~~~~~~~~~~~~~~~~~~~~~
* cd GDRootFolder/Binaries
* mkdir .build
* cd .build
* cd /path/to/GD/Binaries
* mkdir build
* cd build
* cmake ../.. -G "Ninja"
* ninja
* ~~~~~~~~~~~~~~~~~~~~~
@@ -187,6 +197,40 @@ sudo apt-get install libgtk2.0-dev
* You'll need CMake to build GDevelop: See more on \subpage installAndUseCMake.
*/
/**
* \page installMacOSTools (Mac OS X) Install development tools
*
* Make sure that you have Apple Developer Tools installed (if you have Xcode and git, that should be the case).
*
* \section installTools Install development tools
*
* The simplest way of installing dependencies required by GDevelop is to use [Homebrew](http://brew.sh/). Install it
* and install these packages, using the terminal:
\code
brew install cmake
brew install p7zip
brew install pkgconfig
brew install wxwidgets
\endcode
* If you want to generate the documentation, install Doxygen:
\code
brew install doxygen
\endcode
*
* \section launchCompilation Launch compilation
*
* You should be able to compile GD using CMake. Go with a terminal to the GD source folder:
\code
cd /path/to/GD
mkdir build && cd build
cmake ../..
make -j4
\endcode
*
* More information about compilation here: \ref installAndUseCMake
*/
/**
* \page recommendedToolsAndConventions Recommended tools and advices to work with GD
*
@@ -206,16 +250,9 @@ sudo apt-get install libgtk2.0-dev
*
* \section designers Visual designers for IDE or GDCore dialogs
*
* \subsection oldDesigner "Old" dialogs created with wxSmith
* If you want to edit a dialog, first search if there is a file called *filename*.wxs in the folder *wxsmith* (in GDCore,
* GDCpp or IDE). If it is present, the dialog was made using the wxSmith visual designer integrated into the Code::Blocks IDE:
* - Download [Code::Blocks](http://www.codeblocks.org/) and launch it.
* - Open the .cbp in GDCore, GDCpp or IDE folder.
* - In the tab "Resources", locate the dialog to edit.
*
* \subsection newDesigner "New" dialogs created with wxCrafter
*
* New dialogs are designed using [wxCrafter](wxcrafter.codelite.org/). Download and launch it.
* New dialogs are designed using [wxCrafter](http://wxcrafter.codelite.org/). Download and launch it.
*
* All dialogs of GDCore, GDCpp, GDJS or the IDE created using wxCrafter are stored into a single .wxcp file in
* the wxsmith folder, next to files of dialogs created with wxSmith.<br>
@@ -226,6 +263,13 @@ sudo apt-get install libgtk2.0-dev
* wxCrafter creates base classes for dialog (their names start by *Base*), and any code must be inserted into
* a derived class. See examples in *GDJS*.
*
* \subsection oldDesigner "Old" dialogs created with wxSmith
* If you want to edit a dialog, first search if there is a file called *filename*.wxs in the folder *wxsmith* (in GDCore,
* GDCpp or IDE). If it is present, the dialog was made using the wxSmith visual designer integrated into the Code::Blocks IDE:
* - Download [Code::Blocks](http://www.codeblocks.org/) and launch it.
* - Open the .cbp in GDCore, GDCpp or IDE folder.
* - In the tab "Resources", locate the dialog to edit.
*
* ------
*
* \section git Git and GitHub

View File

@@ -91,7 +91,9 @@ void CommentEvent::Render(wxDC & dc, int x, int y, unsigned int width, gd::Event
dc.SetPen(wxPen(wxColour(r/2, v/2, b/2), 1));
//Draw the background
wxRect rectangle(x, y, width-2, text1Height > text2Height ? sideSeparation+text1Height+sideSeparation : sideSeparation+text2Height+sideSeparation);
unsigned int height = std::max(text1Height, text2Height)+sideSeparation*2;
height = std::max(height, (unsigned int)15);
wxRect rectangle(x, y, width-2, height);
dc.GradientFillLinear(rectangle, wxColour(r+20 > 255 ? 255 : r+20, v+20 > 255 ? 255 : v+20, b+20 > 255 ? 255 : b+20), wxColour(r, v, b), wxSOUTH);
dc.DrawRectangle(rectangle);
@@ -139,7 +141,9 @@ unsigned int CommentEvent::GetRenderedHeight(unsigned int width, const gd::Platf
renderingHelper->GetHTMLRenderer().SetHtmlText(str2);
unsigned int text2Height = renderingHelper->GetHTMLRenderer().GetTotalHeight();
renderedHeight = text1Height > text2Height ? sideSeparation+text1Height+sideSeparation : sideSeparation+text2Height+sideSeparation;
unsigned int height = std::max(text1Height, text2Height)+sideSeparation*2;
height = std::max(height, (unsigned int)15);
renderedHeight = height;
}
#endif
return renderedHeight+2;//2 : 2 small borders

View File

@@ -12,7 +12,7 @@ namespace gd
{
/**
* \brief A link pointing to external events ( or events of another layout ) that should be included
* \brief A link pointing to external events (or events of another layout) that should be included
* and run instead of the link.
*/
class GD_CORE_API LinkEvent : public gd::BaseEvent
@@ -23,12 +23,12 @@ public:
virtual gd::LinkEvent * Clone() const { return new LinkEvent(*this);}
/**
* Get the link target ( i.e. the scene or external events the link refers to )
* Get the link target (i.e. the scene or external events the link refers to).
*/
const std::string & GetTarget() const { return target; };
/**
* Change the link target ( i.e. the scene or external events the link refers to )
* Change the link target (i.e. the scene or external events the link refers to).
*/
void SetTarget(const std::string & target_) { target = target_; };
@@ -48,12 +48,12 @@ public:
void SetIncludeStartAndEnd(unsigned int includeStart_, unsigned int includeEnd_) { includeStart = includeStart_; includeEnd = includeEnd_; };
/**
* Get the number of the first event to be included. ( Meaningful only if includeAll was set to false, see SetIncludeAllEvents )
* Get the number of the first event to be included. (Meaningful only if includeAll was set to false, see SetIncludeAllEvents)
*/
unsigned int GetIncludeStart() const { return includeStart; };
/**
* Get the number of the last event to be included. ( Meaningful only if includeAll was set to false, see SetIncludeAllEvents )
* Get the number of the last event to be included. (Meaningful only if includeAll was set to false, see SetIncludeAllEvents)
*/
unsigned int GetIncludeEnd() const { return includeEnd; };
@@ -73,7 +73,7 @@ public:
/**
* \brief Replace the link in the events list by the linked events.
* When implementing a platform with a link event, you should call this function when preprocessing the events
* ( See gd::EventMetadata::codeGeneration ).
* (See gd::EventMetadata::codeGeneration).
*/
void ReplaceLinkByLinkedEvents(gd::Project & project, EventsList & eventList, unsigned int indexOfTheEventInThisList);
@@ -95,7 +95,7 @@ public:
virtual void UnserializeFrom(gd::Project & project, const SerializerElement & element);
private:
std::string target; ///< The name of the external events ( or scene ) to be included
std::string target; ///< The name of the external events (or scene) to be included
bool includeAll; ///< If set to true, all the events of the target should be included
unsigned int includeStart; ///< If includeAll is set to false, represents the number of the first event of the target to included.
unsigned int includeEnd; ///< If includeAll is set to false, represents the number of the last event of the target to included.

View File

@@ -85,7 +85,7 @@ public:
void EmptyObjectsListNeeded(const std::string & objectName);
/**
* Return true if an object list has already been declared ( or is going to be declared ).
* Return true if an object list has already been declared (or is going to be declared).
*/
bool ObjectAlreadyDeclared(const std::string & objectName) const { return (alreadyDeclaredObjectsLists.find(objectName) != alreadyDeclaredObjectsLists.end()); };

View File

@@ -122,7 +122,7 @@ public:
gd::ExpressionMetadata & AddCodeOnlyParameter(const std::string & type, const std::string & supplementaryInformation);
/**
* Set the default value used in editor ( or if an optional parameter is empty during code generation ) for the latest added parameter.
* Set the default value used in editor (or if an optional parameter is empty during code generation) for the latest added parameter.
*
* \see AddParameter
*/

View File

@@ -256,7 +256,7 @@ std::string Serializer::ToJSON(const SerializerElement & element)
it != attributes.end();++it)
{
if ( !firstChild ) str += ",";
str += "\""+it->first+"\": "+ValueToJSON(it->second);
str += StringToQuotedJSONString(it->first.c_str())+": "+ValueToJSON(it->second);
firstChild = false;
}
@@ -268,7 +268,7 @@ std::string Serializer::ToJSON(const SerializerElement & element)
continue;
if ( !firstChild ) str += ",";
str += "\""+children[i].first+"\": "+ToJSON(*children[i].second);
str += StringToQuotedJSONString(children[i].first.c_str())+": "+ToJSON(*children[i].second);
firstChild = false;
}

View File

@@ -42,7 +42,7 @@ size_t SystemStats::GetUsedVirtualMemory()
PROCESS_MEMORY_COUNTERS_EX pmc;
GetProcessMemoryInfo(GetCurrentProcess(), (PROCESS_MEMORY_COUNTERS*)&pmc, sizeof(pmc));
SIZE_T virtualMemUsedByMe = pmc.PrivateUsage;
return virtualMemUsedByMe;
return virtualMemUsedByMe/1024;
#else
#warning Memory consumption tracking is not available for your system.
return 0;

View File

@@ -4,8 +4,8 @@
namespace AutoVersion{
//Date Version Types
static const char GDCore_DATE[] = "25";
static const char GDCore_MONTH[] = "01";
static const char GDCore_DATE[] = "3";
static const char GDCore_MONTH[] = "04";
static const char GDCore_YEAR[] = "2015";
//Software Status
@@ -15,12 +15,12 @@ namespace AutoVersion{
//Standard Version Type
static const long GDCore_MAJOR = 3;
static const long GDCore_MINOR = 6;
static const long GDCore_BUILD = 78;
static const long GDCore_BUILD = 79;
static const long GDCore_REVISION = 0;
//Miscellaneous Version Types
#define GDCore_RC_FILEVERSION 3,6,78,0
#define GDCore_RC_FILEVERSION_STRING "3, 6, 78, 0\0"
static const char GDCore_FULLVERSION_STRING[] = "3.6.78.0";
#define GDCore_RC_FILEVERSION 3,6,79,0
#define GDCore_RC_FILEVERSION_STRING "3, 6, 79, 0\0"
static const char GDCore_FULLVERSION_STRING[] = "3.6.79.0";
}
#endif //GDCORE_VERSION_H

View File

@@ -705,7 +705,7 @@ EXCLUDE_PATTERNS =
# wildcard * is used, a substring. Examples: ANamespace, AClass,
# AClass::ANamespace, ANamespace::*Test
EXCLUDE_SYMBOLS =
EXCLUDE_SYMBOLS = TiXml*
# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see

46
Core/tests/Serializer.cpp Normal file
View File

@@ -0,0 +1,46 @@
/*
* GDevelop Core
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
* This project is released under the MIT License.
*/
/**
* @file Tests covering serialization to JSON.
*/
#include "catch.hpp"
#include "GDCore/CommonTools.h"
#include "GDCore/Tools/SystemStats.h"
#include "GDCore/Tools/VersionWrapper.h"
#include "GDCore/PlatformDefinition/Project.h"
#include "GDCore/PlatformDefinition/Layout.h"
#include "GDCore/PlatformDefinition/Variable.h"
#include "GDCore/Events/EventsList.h"
#include "GDCore/Events/Event.h"
#include "GDCore/Events/Builtin/StandardEvent.h"
#include "GDCore/Events/Serialization.h"
#include "GDCore/Serialization/Serializer.h"
using namespace gd;
TEST_CASE( "Serializer", "[common]" ) {
SECTION("JSON basics") {
std::string originalJSON = "{\"ok\": true,\"hello\": \"world\"}";
SerializerElement element = Serializer::FromJSON(originalJSON);
REQUIRE(element.GetChild("ok").GetValue().GetBool() == true);
REQUIRE(element.GetChild("hello").GetValue().GetString() == "world");
std::string json = Serializer::ToJSON(element);
REQUIRE(json == originalJSON);
}
SECTION("Quotes and special characters") {
std::string originalJSON = "{\"\\\"hello\\\"\": \" \\\"quote\\\" \",\"caret-prop\": 1,\"special-\\b\\f\\n\\r\\t\\\"\": \"\\b\\f\\n\\r\\t\"}";
SerializerElement element = Serializer::FromJSON(originalJSON);
REQUIRE(element.GetChild("caret-prop").GetValue().GetBool() == true);
REQUIRE(element.GetChild("\"hello\"").GetValue().GetString() == " \"quote\" ");
REQUIRE(element.GetChild("special-\b\f\n\r\t\"").GetValue().GetString() == "\b\f\n\r\t");
std::string json = Serializer::ToJSON(element);
REQUIRE(json == originalJSON);
}
}

View File

@@ -9,6 +9,13 @@ ENDIF()
IF(NOT EMSCRIPTEN) #Don't build SFML binaries when compiling with emscripten (but keep include files!)
ADD_SUBDIRECTORY(SFML)
set(sfml_lib_dir ${CMAKE_BINARY_DIR}/ExtLibs/SFML/lib PARENT_SCOPE)
set(sfml_LIBRARIES sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(WIN32)
set(sfml_LIBRARIES "${sfml_LIBRARIES}" ws2_32 user32 opengl32 glu32 psapi)
ELSEIF(NOT APPLE)
set(sfml_LIBRARIES "${sfml_LIBRARIES}" GLU GL)
ENDIF()
set(sfml_LIBRARIES "${sfml_LIBRARIES}" PARENT_SCOPE)
ENDIF()
set(sfml_include_dir ${CMAKE_CURRENT_SOURCE_DIR}/SFML/include PARENT_SCOPE)
@@ -22,6 +29,13 @@ IF(NOT NO_GUI)
message( "Extracting wxWidgets in ExtLibs/wxWidgets... (can take a bit of time, be patient)" )
execute_process(COMMAND 7za x -y wxwidgets.7z WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ OUTPUT_QUIET)
ENDIF()
set(wxwidgets_include_dir "${GD_base_dir}/ExtLibs/wxwidgets/include" "${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu" PARENT_SCOPE)
set(wxwidgets_lib_dir "${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll")
set(wxwidgets_lib_dir "${wxwidgets_lib_dir}" PARENT_SCOPE)
set(wxWidgets_LIBRARIES ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
set(wxWidgets_LIBRARIES ${wxWidgets_LIBRARIES} ws2_32 user32 opengl32 glu32)
set(wxWidgets_LIBRARIES ${wxWidgets_LIBRARIES} PARENT_SCOPE)
ELSE()
#Use wx-config on *nix:
find_package(wxWidgets REQUIRED)

View File

@@ -3,158 +3,24 @@ cmake_policy(SET CMP0015 NEW)
project(AES)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
#Dependencies on external libraries:
###
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(AES_extra_definitions "${AES_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(AES)
#The targets
###
include_directories(.)
file(GLOB_RECURSE source_files *)
add_library(AES SHARED ${source_files})
add_library(AES_Runtime SHARED ${source_files})
set_target_properties(AES PROPERTIES COMPILE_DEFINITIONS "${AES_extra_definitions}")
set_target_properties(AES_Runtime PROPERTIES COMPILE_DEFINITIONS "${AES_Runtime_extra_definitions}")
set_target_properties(AES PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(AES PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(AES PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(AES_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(AES_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(AES_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(AES_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "AES")
set_target_properties(AES_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "AES")
set_target_properties(AES_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "AES")
set_target_properties(AES PROPERTIES PREFIX "")
set_target_properties(AES_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(AES PROPERTIES SUFFIX ".xgdwe")
set_target_properties(AES_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(AES PROPERTIES SUFFIX ".xgde")
set_target_properties(AES_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(AES_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "AES")
gd_add_extension_target(AES "${source_files}")
gdcpp_add_runtime_extension_target(AES_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(AES GDCore)
target_link_libraries(AES GDCpp)
IF(WIN32)
target_link_libraries(AES sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(AES ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(AES ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(AES ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(AES sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(AES ${wxWidgets_LIBRARIES})
target_link_libraries(AES ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(AES)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(AES_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(AES_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(AES_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(AES_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(AES_Runtime)

View File

@@ -2,158 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(AdvancedXML)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(AdvancedXML_extra_definitions "${AdvancedXML_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(AdvancedXML)
#The targets
###
include_directories(src)
file(GLOB_RECURSE source_files src/*)
add_library(AdvancedXML SHARED ${source_files})
add_library(AdvancedXML_Runtime SHARED ${source_files})
set_target_properties(AdvancedXML PROPERTIES COMPILE_DEFINITIONS "${AdvancedXML_extra_definitions}")
set_target_properties(AdvancedXML_Runtime PROPERTIES COMPILE_DEFINITIONS "${AdvancedXML_Runtime_extra_definitions}")
set_target_properties(AdvancedXML PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(AdvancedXML PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(AdvancedXML PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(AdvancedXML_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(AdvancedXML_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(AdvancedXML_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(AdvancedXML_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "AdvancedXML")
set_target_properties(AdvancedXML_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "AdvancedXML")
set_target_properties(AdvancedXML_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "AdvancedXML")
set_target_properties(AdvancedXML PROPERTIES PREFIX "")
set_target_properties(AdvancedXML_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(AdvancedXML PROPERTIES SUFFIX ".xgdwe")
set_target_properties(AdvancedXML_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(AdvancedXML PROPERTIES SUFFIX ".xgde")
set_target_properties(AdvancedXML_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(AdvancedXML_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "AdvancedXML")
gd_add_extension_target(AdvancedXML "${source_files}")
gdcpp_add_runtime_extension_target(AdvancedXML_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(AdvancedXML GDCore)
target_link_libraries(AdvancedXML GDCpp)
IF(WIN32)
target_link_libraries(AdvancedXML sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(AdvancedXML ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(AdvancedXML ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(AdvancedXML ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(AdvancedXML sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(AdvancedXML ${wxWidgets_LIBRARIES})
target_link_libraries(AdvancedXML ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(AdvancedXML)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(AdvancedXML_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(AdvancedXML_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(AdvancedXML_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(AdvancedXML_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(AdvancedXML_Runtime)

View File

@@ -2,158 +2,25 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(Box3DObject)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(Box3DObject_extra_definitions "${Box3DObject_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(Box3DObject)
#The targets
###
include_directories(.)
file(GLOB_RECURSE source_files *)
add_library(Box3DObject SHARED ${source_files})
add_library(Box3DObject_Runtime SHARED ${source_files})
set_target_properties(Box3DObject PROPERTIES COMPILE_DEFINITIONS "${Box3DObject_extra_definitions}")
set_target_properties(Box3DObject_Runtime PROPERTIES COMPILE_DEFINITIONS "${Box3DObject_Runtime_extra_definitions}")
set_target_properties(Box3DObject PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(Box3DObject PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(Box3DObject PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(Box3DObject_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(Box3DObject_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(Box3DObject_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(Box3DObject_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "Box3DObject")
set_target_properties(Box3DObject_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "Box3DObject")
set_target_properties(Box3DObject_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "Box3DObject")
set_target_properties(Box3DObject PROPERTIES PREFIX "")
set_target_properties(Box3DObject_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(Box3DObject PROPERTIES SUFFIX ".xgdwe")
set_target_properties(Box3DObject_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(Box3DObject PROPERTIES SUFFIX ".xgde")
set_target_properties(Box3DObject_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(Box3DObject_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "Box3DObject")
gd_add_extension_target(Box3DObject "${source_files}")
gdcpp_add_runtime_extension_target(Box3DObject_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(Box3DObject GDCore)
target_link_libraries(Box3DObject GDCpp)
IF(WIN32)
target_link_libraries(Box3DObject sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(Box3DObject ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(Box3DObject ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(Box3DObject ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(Box3DObject sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(Box3DObject ${wxWidgets_LIBRARIES})
target_link_libraries(Box3DObject ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(Box3DObject)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(Box3DObject_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(Box3DObject_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(Box3DObject_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(Box3DObject_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(Box3DObject_Runtime)

View File

@@ -5,13 +5,9 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0011 NEW)
project(GD-Extensions)
include(CMakeUtils.txt) #Functions to factor common tasks done in CMakeLists.txt of extensions
#Sanity checks
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
#Add all the CMakeLists:
IF (NOT EMSCRIPTEN) #Only add some extensions when compiling with emscripten.
ADD_SUBDIRECTORY(AdvancedXML)
ADD_SUBDIRECTORY(AES)

155
Extensions/CMakeUtils.txt Normal file
View File

@@ -0,0 +1,155 @@
# This file contains functions that are used to build
# the CMakeLists.txt for an extension:
# Most of the time, an extension CMakeLists.txt should
# consist in a few lines containing calls to these functions.
macro(gd_add_extension_includes)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSEIF (NOT EMSCRIPTEN AND NOT NO_GUI)
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
endmacro()
#Add common defines for a target that will be a GD extension
function(gd_add_extension_definitions target_name)
#Define used in GD to check the build type
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
ELSEIF (CMAKE_BUILD_TYPE} MATCHES "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF()
set(${target_name}_extra_definitions "${${target_name}_extra_definitions} GD_IDE_ONLY=1;" PARENT_SCOPE)
IF (NO_GUI) #Are we compiling without any GUI feature?
add_definitions( -DGD_NO_WX_GUI )
ENDIF()
#Defne used in GD to identify the environment
IF (EMSCRIPTEN)
add_definitions( -DEMSCRIPTEN )
ELSEIF(WIN32)
add_definitions( -DWINDOWS )
ELSEIF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
IF(WIN32) #Windows specific defines
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ ) #wxWidgets Windows specific defines
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
endfunction()
#Add a GD extension target, that will produce the final library file.
function(gd_add_extension_target target_name source_files)
IF(target_name STREQUAL "")
MESSAGE(ERROR "You called gd_add_extension_target without specifying a target name")
ENDIF()
add_library(${target_name} SHARED ${source_files})
set_target_properties(${target_name} PROPERTIES PREFIX "")
set_target_properties(${target_name} PROPERTIES COMPILE_DEFINITIONS "${${target_name}_extra_definitions}")
set_target_properties(${target_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(${target_name} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(${target_name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
IF(WIN32) #GD extensions have special suffix in their filenames.
set_target_properties(${target_name} PROPERTIES SUFFIX ".xgdwe")
ELSEIF(EMSCRIPTEN)
set_target_properties(${target_name} PROPERTIES SUFFIX ".bc")
ELSE()
set_target_properties(${target_name} PROPERTIES SUFFIX ".xgde")
ENDIF()
endfunction()
#Add a GDC++ runtime extension target, that will produce the final library file for runtime.
function(gdcpp_add_runtime_extension_target gdcpp_runtime_target_name source_files)
IF(NOT gdcpp_runtime_target_name MATCHES "_Runtime$")
MESSAGE(ERROR "You called gdcpp_add_runtime_extension_target with a target name not finishing with '_Runtime'")
ENDIF()
string(REGEX REPLACE "_Runtime" "" target_name ${gdcpp_runtime_target_name})
IF(NOT EMSCRIPTEN) #Also add a GDC++ extension target
add_library(${gdcpp_runtime_target_name} SHARED ${source_files})
set_target_properties(${gdcpp_runtime_target_name} PROPERTIES COMPILE_DEFINITIONS "${${gdcpp_runtime_target_name}_extra_definitions}")
set_target_properties(${gdcpp_runtime_target_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(${gdcpp_runtime_target_name} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(${gdcpp_runtime_target_name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(${gdcpp_runtime_target_name} PROPERTIES RUNTIME_OUTPUT_NAME "${target_name}")
set_target_properties(${gdcpp_runtime_target_name} PROPERTIES LIBRARY_OUTPUT_NAME "${target_name}")
set_target_properties(${gdcpp_runtime_target_name} PROPERTIES ARCHIVE_OUTPUT_NAME "${target_name}")
set_target_properties(${gdcpp_runtime_target_name} PROPERTIES PREFIX "")
IF(WIN32) #GD extensions have special suffix in their filenames.
set_target_properties(${gdcpp_runtime_target_name} PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(${gdcpp_runtime_target_name} PROPERTIES SUFFIX ".xgd")
ENDIF()
ENDIF()
endfunction()
#Link default libraries with a target that is a GD extension
function(gd_extension_link_libraries target_name)
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(${target_name} GDCore)
target_link_libraries(${target_name} GDCpp)
target_link_libraries(${target_name} ${sfml_LIBRARIES})
target_link_libraries(${target_name} ${wxWidgets_LIBRARIES}) #Add wxWidgets libraries if needed.
target_link_libraries(${target_name} ${GTK_LIBRARIES}) #Add GTK libraries if needed (Linux only).
ENDIF()
endfunction()
#Link default libraries with a target that is a GDC++ Runtime extension
function(gdcpp_runtime_extension_link_libraries target_name)
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(${target_name} GDCpp_Runtime)
target_link_libraries(${target_name} ${sfml_LIBRARIES})
IF(WIN32)
target_link_libraries(${target_name} ws2_32 user32 opengl32 glu32)
ENDIF(WIN32)
ENDIF()
endfunction()
#Create a target for a test executable of a GDC++ Runtime extension
function(gdcpp_add_tests_extension_target gdcpp_tests_target_name test_source_files)
IF(NOT gdcpp_tests_target_name MATCHES "_tests$")
MESSAGE(ERROR "You called gdcpp_add_tests_extension_target with a target name not finishing with '_tests'")
ENDIF()
string(REGEX REPLACE "_tests" "" target_name ${gdcpp_tests_target_name})
if(BUILD_TESTS)
add_executable(${gdcpp_tests_target_name} ${test_source_files})
target_link_libraries(${gdcpp_tests_target_name} GDCpp_Runtime)
target_link_libraries(${gdcpp_tests_target_name} ${target_name})
target_link_libraries(${gdcpp_tests_target_name} ${sfml_LIBRARIES})
set_target_properties(${gdcpp_tests_target_name} PROPERTIES BUILD_WITH_INSTALL_RPATH FALSE) #Allow finding dependencies directly from build path on Mac OS X.
endif()
endfunction()

View File

@@ -2,102 +2,11 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(CommonDialogs)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(CommonDialogs_extra_definitions "${CommonDialogs_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(CommonDialogs)
#The targets
###
@@ -109,56 +18,13 @@ ELSE()
file(GLOB source_files * nwidgets/nsource.cpp dlib-17.49/dlib/all/source.cpp)
ENDIF()
add_library(CommonDialogs SHARED ${source_files})
add_library(CommonDialogs_Runtime SHARED ${source_files})
set_target_properties(CommonDialogs PROPERTIES COMPILE_DEFINITIONS "${CommonDialogs_extra_definitions}")
set_target_properties(CommonDialogs_Runtime PROPERTIES COMPILE_DEFINITIONS "${CommonDialogs_Runtime_extra_definitions}")
set_target_properties(CommonDialogs PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(CommonDialogs PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(CommonDialogs PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(CommonDialogs_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(CommonDialogs_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(CommonDialogs_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(CommonDialogs_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "CommonDialogs")
set_target_properties(CommonDialogs_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "CommonDialogs")
set_target_properties(CommonDialogs_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "CommonDialogs")
set_target_properties(CommonDialogs PROPERTIES PREFIX "")
set_target_properties(CommonDialogs_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(CommonDialogs PROPERTIES SUFFIX ".xgdwe")
set_target_properties(CommonDialogs_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(CommonDialogs PROPERTIES SUFFIX ".xgde")
set_target_properties(CommonDialogs_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(CommonDialogs_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "CommonDialogs")
gd_add_extension_target(CommonDialogs "${source_files}")
gdcpp_add_runtime_extension_target(CommonDialogs_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(CommonDialogs GDCore)
target_link_libraries(CommonDialogs GDCpp)
IF(WIN32)
target_link_libraries(CommonDialogs sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(CommonDialogs ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(CommonDialogs ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(CommonDialogs ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(CommonDialogs sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(CommonDialogs ${wxWidgets_LIBRARIES})
target_link_libraries(CommonDialogs ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(CommonDialogs)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(CommonDialogs_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(CommonDialogs_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(CommonDialogs_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(CommonDialogs_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(CommonDialogs_Runtime)

View File

@@ -2,176 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(DestroyOutsideAutomatism)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
if(EMSCRIPTEN) #When compiling for the web, ensure we get no warning when using our own external libraries.
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --bind -Wno-warn-absolute-paths" )
ENDIF()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSEIF (NOT EMSCRIPTEN)
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(DestroyOutsideAutomatism_extra_definitions "${DestroyOutsideAutomatism_extra_definitions} GD_IDE_ONLY=1;")
IF (EMSCRIPTEN) #When compiling for the web, we do not want any GUI related feature.
add_definitions( -DGD_NO_WX_GUI )
add_definitions( -DEMSCRIPTEN )
ENDIF()
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(DestroyOutsideAutomatism)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(DestroyOutsideAutomatism SHARED ${source_files})
set_target_properties(DestroyOutsideAutomatism PROPERTIES COMPILE_DEFINITIONS "${DestroyOutsideAutomatism_extra_definitions}")
set_target_properties(DestroyOutsideAutomatism PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(DestroyOutsideAutomatism PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(DestroyOutsideAutomatism PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(DestroyOutsideAutomatism PROPERTIES PREFIX "")
IF(NOT EMSCRIPTEN)
add_library(DestroyOutsideAutomatism_Runtime SHARED ${source_files})
set_target_properties(DestroyOutsideAutomatism_Runtime PROPERTIES COMPILE_DEFINITIONS "${DestroyOutsideAutomatism_Runtime_extra_definitions}")
set_target_properties(DestroyOutsideAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(DestroyOutsideAutomatism_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(DestroyOutsideAutomatism_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(DestroyOutsideAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "DestroyOutsideAutomatism")
set_target_properties(DestroyOutsideAutomatism_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "DestroyOutsideAutomatism")
set_target_properties(DestroyOutsideAutomatism_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "DestroyOutsideAutomatism")
set_target_properties(DestroyOutsideAutomatism_Runtime PROPERTIES PREFIX "")
ENDIF()
IF(WIN32)
set_target_properties(DestroyOutsideAutomatism PROPERTIES SUFFIX ".xgdwe")
set_target_properties(DestroyOutsideAutomatism_Runtime PROPERTIES SUFFIX ".xgdw")
ELSEIF(EMSCRIPTEN)
set_target_properties(DestroyOutsideAutomatism PROPERTIES SUFFIX ".bc")
ELSE()
set_target_properties(DestroyOutsideAutomatism PROPERTIES SUFFIX ".xgde")
set_target_properties(DestroyOutsideAutomatism_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
gd_add_extension_target(DestroyOutsideAutomatism "${source_files}")
gdcpp_add_runtime_extension_target(DestroyOutsideAutomatism_Runtime "${source_files}")
#Linker files for the IDE extension
###
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(DestroyOutsideAutomatism GDCore)
target_link_libraries(DestroyOutsideAutomatism GDCpp)
IF(WIN32)
target_link_libraries(DestroyOutsideAutomatism sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(DestroyOutsideAutomatism ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(DestroyOutsideAutomatism ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(DestroyOutsideAutomatism ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(DestroyOutsideAutomatism sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(DestroyOutsideAutomatism ${wxWidgets_LIBRARIES})
target_link_libraries(DestroyOutsideAutomatism ${GTK_LIBRARIES})
ENDIF(WIN32)
ENDIF()
gd_extension_link_libraries(DestroyOutsideAutomatism GDCore)
#Linker files for the GD C++ Runtime extension
###
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(DestroyOutsideAutomatism_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(DestroyOutsideAutomatism_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(DestroyOutsideAutomatism_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(DestroyOutsideAutomatism_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
ENDIF()
gdcpp_runtime_extension_link_libraries(DestroyOutsideAutomatism_Runtime)

View File

@@ -2,175 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(DraggableAutomatism)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
if(EMSCRIPTEN) #When compiling for the web, ensure we get no warning when using our own external libraries.
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --bind -Wno-warn-absolute-paths" )
ENDIF()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSEIF (NOT EMSCRIPTEN)
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(DraggableAutomatism_extra_definitions "${DraggableAutomatism_extra_definitions} GD_IDE_ONLY=1;")
IF (EMSCRIPTEN) #When compiling for the web, we do not want any GUI related feature.
add_definitions( -DGD_NO_WX_GUI )
add_definitions( -DEMSCRIPTEN )
ENDIF()
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(DraggableAutomatism)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(DraggableAutomatism SHARED ${source_files})
set_target_properties(DraggableAutomatism PROPERTIES PREFIX "")
set_target_properties(DraggableAutomatism PROPERTIES COMPILE_DEFINITIONS "${DraggableAutomatism_extra_definitions}")
set_target_properties(DraggableAutomatism PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(DraggableAutomatism PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(DraggableAutomatism PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
IF(NOT EMSCRIPTEN)
add_library(DraggableAutomatism_Runtime SHARED ${source_files})
set_target_properties(DraggableAutomatism_Runtime PROPERTIES COMPILE_DEFINITIONS "${DraggableAutomatism_Runtime_extra_definitions}")
set_target_properties(DraggableAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(DraggableAutomatism_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(DraggableAutomatism_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(DraggableAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "DraggableAutomatism")
set_target_properties(DraggableAutomatism_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "DraggableAutomatism")
set_target_properties(DraggableAutomatism_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "DraggableAutomatism")
set_target_properties(DraggableAutomatism_Runtime PROPERTIES PREFIX "")
ENDIF()
IF(WIN32)
set_target_properties(DraggableAutomatism PROPERTIES SUFFIX ".xgdwe")
set_target_properties(DraggableAutomatism_Runtime PROPERTIES SUFFIX ".xgdw")
ELSEIF(EMSCRIPTEN)
set_target_properties(DraggableAutomatism PROPERTIES SUFFIX ".bc")
ELSE()
set_target_properties(DraggableAutomatism PROPERTIES SUFFIX ".xgde")
set_target_properties(DraggableAutomatism_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
gd_add_extension_target(DraggableAutomatism "${source_files}")
gdcpp_add_runtime_extension_target(DraggableAutomatism_Runtime "${source_files}")
#Linker files for the IDE extension
###
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(DraggableAutomatism GDCore)
target_link_libraries(DraggableAutomatism GDCpp)
IF(WIN32)
target_link_libraries(DraggableAutomatism sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(DraggableAutomatism ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(DraggableAutomatism ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(DraggableAutomatism ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(DraggableAutomatism sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(DraggableAutomatism ${wxWidgets_LIBRARIES})
target_link_libraries(DraggableAutomatism ${GTK_LIBRARIES})
ENDIF(WIN32)
ENDIF()
gd_extension_link_libraries(DraggableAutomatism)
#Linker files for the GD C++ Runtime extension
###
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(DraggableAutomatism_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(DraggableAutomatism_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(DraggableAutomatism_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(DraggableAutomatism_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
ENDIF()
gdcpp_runtime_extension_link_libraries(DraggableAutomatism_Runtime)

View File

@@ -2,158 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(Function)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(Function_extra_definitions "${Function_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(Function)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(Function SHARED ${source_files})
add_library(Function_Runtime SHARED ${source_files})
set_target_properties(Function PROPERTIES COMPILE_DEFINITIONS "${Function_extra_definitions}")
set_target_properties(Function_Runtime PROPERTIES COMPILE_DEFINITIONS "${Function_Runtime_extra_definitions}")
set_target_properties(Function PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(Function PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(Function PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(Function_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(Function_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(Function_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(Function_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "Function")
set_target_properties(Function_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "Function")
set_target_properties(Function_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "Function")
set_target_properties(Function PROPERTIES PREFIX "")
set_target_properties(Function_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(Function PROPERTIES SUFFIX ".xgdwe")
set_target_properties(Function_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(Function PROPERTIES SUFFIX ".xgde")
set_target_properties(Function_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(Function_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "Function")
gd_add_extension_target(Function "${source_files}")
gdcpp_add_runtime_extension_target(Function_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(Function GDCore)
target_link_libraries(Function GDCpp)
IF(WIN32)
target_link_libraries(Function sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(Function ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(Function ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(Function ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(Function sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(Function ${wxWidgets_LIBRARIES})
target_link_libraries(Function ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(Function)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(Function_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(Function_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(Function_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(Function_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(Function_Runtime)

View File

@@ -2,158 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(Light)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(Light_extra_definitions "${Light_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(Light)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(Light SHARED ${source_files})
add_library(Light_Runtime SHARED ${source_files})
set_target_properties(Light PROPERTIES COMPILE_DEFINITIONS "${Light_extra_definitions}")
set_target_properties(Light_Runtime PROPERTIES COMPILE_DEFINITIONS "${Light_Runtime_extra_definitions}")
set_target_properties(Light PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(Light PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(Light PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(Light_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(Light_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(Light_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(Light_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "Light")
set_target_properties(Light_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "Light")
set_target_properties(Light_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "Light")
set_target_properties(Light PROPERTIES PREFIX "")
set_target_properties(Light_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(Light PROPERTIES SUFFIX ".xgdwe")
set_target_properties(Light_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(Light PROPERTIES SUFFIX ".xgde")
set_target_properties(Light_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(Light_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "Light")
gd_add_extension_target(Light "${source_files}")
gdcpp_add_runtime_extension_target(Light_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(Light GDCore)
target_link_libraries(Light GDCpp)
IF(WIN32)
target_link_libraries(Light sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(Light ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(Light ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(Light ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(Light sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(Light ${wxWidgets_LIBRARIES})
target_link_libraries(Light ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(Light)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(Light_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(Light_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(Light_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(Light_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(Light_Runtime)

View File

@@ -2,175 +2,30 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(LinkedObjects)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(LinkedObjects_extra_definitions "${LinkedObjects_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(LinkedObjects)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(LinkedObjects SHARED ${source_files})
add_library(LinkedObjects_Runtime SHARED ${source_files})
set_target_properties(LinkedObjects PROPERTIES COMPILE_DEFINITIONS "${LinkedObjects_extra_definitions}")
set_target_properties(LinkedObjects_Runtime PROPERTIES COMPILE_DEFINITIONS "${LinkedObjects_Runtime_extra_definitions}")
set_target_properties(LinkedObjects PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(LinkedObjects PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(LinkedObjects PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(LinkedObjects_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(LinkedObjects_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(LinkedObjects_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(LinkedObjects_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "LinkedObjects")
set_target_properties(LinkedObjects_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "LinkedObjects")
set_target_properties(LinkedObjects_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "LinkedObjects")
set_target_properties(LinkedObjects PROPERTIES PREFIX "")
set_target_properties(LinkedObjects_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(LinkedObjects PROPERTIES SUFFIX ".xgdwe")
set_target_properties(LinkedObjects_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(LinkedObjects PROPERTIES SUFFIX ".xgde")
set_target_properties(LinkedObjects_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(LinkedObjects_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "LinkedObjects")
gd_add_extension_target(LinkedObjects "${source_files}")
gdcpp_add_runtime_extension_target(LinkedObjects_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(LinkedObjects GDCore)
target_link_libraries(LinkedObjects GDCpp)
IF(WIN32)
target_link_libraries(LinkedObjects sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(LinkedObjects ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(LinkedObjects ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(LinkedObjects ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(LinkedObjects sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(LinkedObjects ${wxWidgets_LIBRARIES})
target_link_libraries(LinkedObjects ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(LinkedObjects)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(LinkedObjects_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(LinkedObjects_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(LinkedObjects_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(LinkedObjects_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(LinkedObjects_Runtime)
#Tests for the GD C++ Runtime extension
###
if(BUILD_TESTS)
file(
GLOB_RECURSE
test_source_files
tests/*
)
add_executable(LinkedObjects_Runtime_tests ${test_source_files})
target_link_libraries(LinkedObjects_Runtime_tests GDCpp_Runtime)
target_link_libraries(LinkedObjects_Runtime_tests LinkedObjects_Runtime)
target_link_libraries(LinkedObjects_Runtime_tests sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF (NOT APPLE)
target_link_libraries(LinkedObjects_Runtime_tests GLU GL)
ENDIF()
endif()
file(GLOB_RECURSE test_source_files tests/*)
gdcpp_add_tests_extension_target(LinkedObjects_Runtime_tests "${test_source_files}")

View File

@@ -2,158 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(Network)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(Network_extra_definitions "${Network_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(Network)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(Network SHARED ${source_files})
add_library(Network_Runtime SHARED ${source_files})
set_target_properties(Network PROPERTIES COMPILE_DEFINITIONS "${Network_extra_definitions}")
set_target_properties(Network_Runtime PROPERTIES COMPILE_DEFINITIONS "${Network_Runtime_extra_definitions}")
set_target_properties(Network PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(Network PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(Network PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(Network_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(Network_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(Network_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(Network_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "Network")
set_target_properties(Network_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "Network")
set_target_properties(Network_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "Network")
set_target_properties(Network PROPERTIES PREFIX "")
set_target_properties(Network_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(Network PROPERTIES SUFFIX ".xgdwe")
set_target_properties(Network_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(Network PROPERTIES SUFFIX ".xgde")
set_target_properties(Network_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(Network_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "Network")
gd_add_extension_target(Network "${source_files}")
gdcpp_add_runtime_extension_target(Network_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(Network GDCore)
target_link_libraries(Network GDCpp)
IF(WIN32)
target_link_libraries(Network sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(Network ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(Network ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(Network ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(Network sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(Network ${wxWidgets_LIBRARIES})
target_link_libraries(Network ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(Network)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(Network_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(Network_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(Network_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(Network_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(Network_Runtime)

View File

@@ -2,158 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(PanelSpriteObject)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(PanelSpriteObject_extra_definitions "${PanelSpriteObject_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(PanelSpriteObject)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(PanelSpriteObject SHARED ${source_files})
add_library(PanelSpriteObject_Runtime SHARED ${source_files})
set_target_properties(PanelSpriteObject PROPERTIES COMPILE_DEFINITIONS "${PanelSpriteObject_extra_definitions}")
set_target_properties(PanelSpriteObject_Runtime PROPERTIES COMPILE_DEFINITIONS "${PanelSpriteObject_Runtime_extra_definitions}")
set_target_properties(PanelSpriteObject PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PanelSpriteObject PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PanelSpriteObject PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PanelSpriteObject_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PanelSpriteObject_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PanelSpriteObject_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PanelSpriteObject_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "PanelSpriteObject")
set_target_properties(PanelSpriteObject_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "PanelSpriteObject")
set_target_properties(PanelSpriteObject_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "PanelSpriteObject")
set_target_properties(PanelSpriteObject PROPERTIES PREFIX "")
set_target_properties(PanelSpriteObject_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(PanelSpriteObject PROPERTIES SUFFIX ".xgdwe")
set_target_properties(PanelSpriteObject_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(PanelSpriteObject PROPERTIES SUFFIX ".xgde")
set_target_properties(PanelSpriteObject_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(PanelSpriteObject_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "PanelSpriteObject")
gd_add_extension_target(PanelSpriteObject "${source_files}")
gdcpp_add_runtime_extension_target(PanelSpriteObject_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(PanelSpriteObject GDCore)
target_link_libraries(PanelSpriteObject GDCpp)
IF(WIN32)
target_link_libraries(PanelSpriteObject sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(PanelSpriteObject ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(PanelSpriteObject ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(PanelSpriteObject ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(PanelSpriteObject sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(PanelSpriteObject ${wxWidgets_LIBRARIES})
target_link_libraries(PanelSpriteObject ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(PanelSpriteObject)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(PanelSpriteObject_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(PanelSpriteObject_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(PanelSpriteObject_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(PanelSpriteObject_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(PanelSpriteObject_Runtime)

View File

@@ -3,158 +3,25 @@ cmake_policy(SET CMP0015 NEW)
project(ParticleSystem)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/SPARK/include)
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(ParticleSystem_extra_definitions "${ParticleSystem_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(ParticleSystem)
#The targets
###
include_directories(./SPARK/include)
include_directories(.)
file(GLOB source_files * "SPARK/src/SPK_All.cpp" "SPARK/src/SPK_GL_All.cpp") #Also compiles the SPARK particle engine files.
add_library(ParticleSystem SHARED ${source_files})
add_library(ParticleSystem_Runtime SHARED ${source_files})
set_target_properties(ParticleSystem PROPERTIES COMPILE_DEFINITIONS "${ParticleSystem_extra_definitions}")
set_target_properties(ParticleSystem_Runtime PROPERTIES COMPILE_DEFINITIONS "${ParticleSystem_Runtime_extra_definitions}")
set_target_properties(ParticleSystem PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(ParticleSystem PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(ParticleSystem PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(ParticleSystem_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(ParticleSystem_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(ParticleSystem_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(ParticleSystem_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "ParticleSystem")
set_target_properties(ParticleSystem_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "ParticleSystem")
set_target_properties(ParticleSystem_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "ParticleSystem")
set_target_properties(ParticleSystem PROPERTIES PREFIX "")
set_target_properties(ParticleSystem_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(ParticleSystem PROPERTIES SUFFIX ".xgdwe")
set_target_properties(ParticleSystem_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(ParticleSystem PROPERTIES SUFFIX ".xgde")
set_target_properties(ParticleSystem_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(ParticleSystem_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "ParticleSystem")
gd_add_extension_target(ParticleSystem "${source_files}")
gdcpp_add_runtime_extension_target(ParticleSystem_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(ParticleSystem GDCore)
target_link_libraries(ParticleSystem GDCpp)
IF(WIN32)
target_link_libraries(ParticleSystem sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(ParticleSystem ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(ParticleSystem ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(ParticleSystem ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(ParticleSystem sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(ParticleSystem ${wxWidgets_LIBRARIES})
target_link_libraries(ParticleSystem ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(ParticleSystem)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(ParticleSystem_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(ParticleSystem_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(ParticleSystem_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(ParticleSystem_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(ParticleSystem_Runtime)

View File

@@ -2,158 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(PathAutomatism)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(PathAutomatism_extra_definitions "${PathAutomatism_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(PathAutomatism)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(PathAutomatism SHARED ${source_files})
add_library(PathAutomatism_Runtime SHARED ${source_files})
set_target_properties(PathAutomatism PROPERTIES COMPILE_DEFINITIONS "${PathAutomatism_extra_definitions}")
set_target_properties(PathAutomatism_Runtime PROPERTIES COMPILE_DEFINITIONS "${PathAutomatism_Runtime_extra_definitions}")
set_target_properties(PathAutomatism PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PathAutomatism PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PathAutomatism PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PathAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PathAutomatism_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PathAutomatism_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PathAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "PathAutomatism")
set_target_properties(PathAutomatism_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "PathAutomatism")
set_target_properties(PathAutomatism_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "PathAutomatism")
set_target_properties(PathAutomatism PROPERTIES PREFIX "")
set_target_properties(PathAutomatism_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(PathAutomatism PROPERTIES SUFFIX ".xgdwe")
set_target_properties(PathAutomatism_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(PathAutomatism PROPERTIES SUFFIX ".xgde")
set_target_properties(PathAutomatism_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(PathAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "PathAutomatism")
gd_add_extension_target(PathAutomatism "${source_files}")
gdcpp_add_runtime_extension_target(PathAutomatism_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(PathAutomatism GDCore)
target_link_libraries(PathAutomatism GDCpp)
IF(WIN32)
target_link_libraries(PathAutomatism sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(PathAutomatism ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(PathAutomatism ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(PathAutomatism ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(PathAutomatism sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(PathAutomatism ${wxWidgets_LIBRARIES})
target_link_libraries(PathAutomatism ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(PathAutomatism)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(PathAutomatism_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(PathAutomatism_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(PathAutomatism_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(PathAutomatism_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(PathAutomatism_Runtime)

View File

@@ -2,158 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(PathfindingAutomatism)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(PathfindingAutomatism_extra_definitions "${PathfindingAutomatism_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(PathfindingAutomatism)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(PathfindingAutomatism SHARED ${source_files})
add_library(PathfindingAutomatism_Runtime SHARED ${source_files})
set_target_properties(PathfindingAutomatism PROPERTIES COMPILE_DEFINITIONS "${PathfindingAutomatism_extra_definitions}")
set_target_properties(PathfindingAutomatism_Runtime PROPERTIES COMPILE_DEFINITIONS "${PathfindingAutomatism_Runtime_extra_definitions}")
set_target_properties(PathfindingAutomatism PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PathfindingAutomatism PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PathfindingAutomatism PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PathfindingAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PathfindingAutomatism_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PathfindingAutomatism_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PathfindingAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "PathfindingAutomatism")
set_target_properties(PathfindingAutomatism_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "PathfindingAutomatism")
set_target_properties(PathfindingAutomatism_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "PathfindingAutomatism")
set_target_properties(PathfindingAutomatism PROPERTIES PREFIX "")
set_target_properties(PathfindingAutomatism_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(PathfindingAutomatism PROPERTIES SUFFIX ".xgdwe")
set_target_properties(PathfindingAutomatism_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(PathfindingAutomatism PROPERTIES SUFFIX ".xgde")
set_target_properties(PathfindingAutomatism_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(PathfindingAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "PathfindingAutomatism")
gd_add_extension_target(PathfindingAutomatism "${source_files}")
gdcpp_add_runtime_extension_target(PathfindingAutomatism_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(PathfindingAutomatism GDCore)
target_link_libraries(PathfindingAutomatism GDCpp)
IF(WIN32)
target_link_libraries(PathfindingAutomatism sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(PathfindingAutomatism ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(PathfindingAutomatism ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(PathfindingAutomatism ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(PathfindingAutomatism sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(PathfindingAutomatism ${wxWidgets_LIBRARIES})
target_link_libraries(PathfindingAutomatism ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(PathfindingAutomatism)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(PathfindingAutomatism_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(PathfindingAutomatism_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(PathfindingAutomatism_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(PathfindingAutomatism_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(PathfindingAutomatism_Runtime)

View File

@@ -2,159 +2,25 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(PhysicsAutomatism)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(PhysicsAutomatism_extra_definitions "${PhysicsAutomatism_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(PhysicsAutomatism)
#The targets
###
include_directories(Box2D/Box2D)
file(GLOB source_files * Box2D/Box2D/Box2D/* Triangulation/*)
file(GLOB_RECURSE box2d_source_files Box2D/Box2D/Box2D/*)
file(GLOB source_files * Box2D/Box2D/Box2D/* Triangulation/* ${box2d_source_files})
add_library(PhysicsAutomatism SHARED ${source_files} ${box2d_source_files})
add_library(PhysicsAutomatism_Runtime SHARED ${source_files} ${box2d_source_files})
set_target_properties(PhysicsAutomatism PROPERTIES COMPILE_DEFINITIONS "${PhysicsAutomatism_extra_definitions}")
set_target_properties(PhysicsAutomatism_Runtime PROPERTIES COMPILE_DEFINITIONS "${PhysicsAutomatism_Runtime_extra_definitions}")
set_target_properties(PhysicsAutomatism PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PhysicsAutomatism PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PhysicsAutomatism PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PhysicsAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PhysicsAutomatism_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PhysicsAutomatism_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PhysicsAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "PhysicsAutomatism")
set_target_properties(PhysicsAutomatism_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "PhysicsAutomatism")
set_target_properties(PhysicsAutomatism_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "PhysicsAutomatism")
set_target_properties(PhysicsAutomatism PROPERTIES PREFIX "")
set_target_properties(PhysicsAutomatism_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(PhysicsAutomatism PROPERTIES SUFFIX ".xgdwe")
set_target_properties(PhysicsAutomatism_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(PhysicsAutomatism PROPERTIES SUFFIX ".xgde")
set_target_properties(PhysicsAutomatism_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(PhysicsAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "PhysicsAutomatism")
gd_add_extension_target(PhysicsAutomatism "${source_files}")
gdcpp_add_runtime_extension_target(PhysicsAutomatism_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(PhysicsAutomatism GDCore)
target_link_libraries(PhysicsAutomatism GDCpp)
IF(WIN32)
target_link_libraries(PhysicsAutomatism sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(PhysicsAutomatism ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(PhysicsAutomatism ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(PhysicsAutomatism ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(PhysicsAutomatism sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(PhysicsAutomatism ${wxWidgets_LIBRARIES})
target_link_libraries(PhysicsAutomatism ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(PhysicsAutomatism)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(PhysicsAutomatism_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(PhysicsAutomatism_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(PhysicsAutomatism_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(PhysicsAutomatism_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(PhysicsAutomatism_Runtime)

View File

@@ -2,175 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(PlatformAutomatism)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
if(EMSCRIPTEN) #When compiling for the web, ensure we get no warning when using our own external libraries.
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --bind -Wno-warn-absolute-paths" )
ENDIF()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSEIF (NOT EMSCRIPTEN)
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(PlatformAutomatism_extra_definitions "${PlatformAutomatism_extra_definitions} GD_IDE_ONLY=1;")
IF (EMSCRIPTEN) #When compiling for the web, we do not want any GUI related feature.
add_definitions( -DGD_NO_WX_GUI )
add_definitions( -DEMSCRIPTEN )
ENDIF()
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(PlatformAutomatism)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(PlatformAutomatism SHARED ${source_files})
set_target_properties(PlatformAutomatism PROPERTIES COMPILE_DEFINITIONS "${PlatformAutomatism_extra_definitions}")
set_target_properties(PlatformAutomatism PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PlatformAutomatism PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PlatformAutomatism PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PlatformAutomatism PROPERTIES PREFIX "")
IF(NOT EMSCRIPTEN)
add_library(PlatformAutomatism_Runtime SHARED ${source_files})
set_target_properties(PlatformAutomatism_Runtime PROPERTIES COMPILE_DEFINITIONS "${PlatformAutomatism_Runtime_extra_definitions}")
set_target_properties(PlatformAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PlatformAutomatism_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PlatformAutomatism_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PlatformAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "PlatformAutomatism")
set_target_properties(PlatformAutomatism_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "PlatformAutomatism")
set_target_properties(PlatformAutomatism_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "PlatformAutomatism")
set_target_properties(PlatformAutomatism_Runtime PROPERTIES PREFIX "")
ENDIF()
IF(WIN32)
set_target_properties(PlatformAutomatism PROPERTIES SUFFIX ".xgdwe")
set_target_properties(PlatformAutomatism_Runtime PROPERTIES SUFFIX ".xgdw")
ELSEIF(EMSCRIPTEN)
set_target_properties(PlatformAutomatism PROPERTIES SUFFIX ".bc")
ELSE()
set_target_properties(PlatformAutomatism PROPERTIES SUFFIX ".xgde")
set_target_properties(PlatformAutomatism_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
gd_add_extension_target(PlatformAutomatism "${source_files}")
gdcpp_add_runtime_extension_target(PlatformAutomatism_Runtime "${source_files}")
#Linker files for the IDE extension
###
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(PlatformAutomatism GDCore)
target_link_libraries(PlatformAutomatism GDCpp)
IF(WIN32)
target_link_libraries(PlatformAutomatism sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(PlatformAutomatism ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(PlatformAutomatism ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(PlatformAutomatism ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(PlatformAutomatism sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(PlatformAutomatism ${wxWidgets_LIBRARIES})
target_link_libraries(PlatformAutomatism ${GTK_LIBRARIES})
ENDIF(WIN32)
ENDIF()
gd_extension_link_libraries(PlatformAutomatism)
#Linker files for the GD C++ Runtime extension
###
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(PlatformAutomatism_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(PlatformAutomatism_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(PlatformAutomatism_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(PlatformAutomatism_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
ENDIF()
gdcpp_runtime_extension_link_libraries(PlatformAutomatism_Runtime)

View File

@@ -2,158 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(PrimitiveDrawing)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(PrimitiveDrawing_extra_definitions "${PrimitiveDrawing_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(PrimitiveDrawing)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(PrimitiveDrawing SHARED ${source_files})
add_library(PrimitiveDrawing_Runtime SHARED ${source_files})
set_target_properties(PrimitiveDrawing PROPERTIES COMPILE_DEFINITIONS "${PrimitiveDrawing_extra_definitions}")
set_target_properties(PrimitiveDrawing_Runtime PROPERTIES COMPILE_DEFINITIONS "${PrimitiveDrawing_Runtime_extra_definitions}")
set_target_properties(PrimitiveDrawing PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PrimitiveDrawing PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PrimitiveDrawing PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(PrimitiveDrawing_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PrimitiveDrawing_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PrimitiveDrawing_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(PrimitiveDrawing_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "PrimitiveDrawing")
set_target_properties(PrimitiveDrawing_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "PrimitiveDrawing")
set_target_properties(PrimitiveDrawing_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "PrimitiveDrawing")
set_target_properties(PrimitiveDrawing PROPERTIES PREFIX "")
set_target_properties(PrimitiveDrawing_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(PrimitiveDrawing PROPERTIES SUFFIX ".xgdwe")
set_target_properties(PrimitiveDrawing_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(PrimitiveDrawing PROPERTIES SUFFIX ".xgde")
set_target_properties(PrimitiveDrawing_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(PrimitiveDrawing_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "PrimitiveDrawing")
gd_add_extension_target(PrimitiveDrawing "${source_files}")
gdcpp_add_runtime_extension_target(PrimitiveDrawing_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(PrimitiveDrawing GDCore)
target_link_libraries(PrimitiveDrawing GDCpp)
IF(WIN32)
target_link_libraries(PrimitiveDrawing sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(PrimitiveDrawing ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(PrimitiveDrawing ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(PrimitiveDrawing ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(PrimitiveDrawing sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(PrimitiveDrawing ${wxWidgets_LIBRARIES})
target_link_libraries(PrimitiveDrawing ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(PrimitiveDrawing)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(PrimitiveDrawing_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(PrimitiveDrawing_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(PrimitiveDrawing_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(PrimitiveDrawing_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(PrimitiveDrawing_Runtime)

View File

@@ -2,158 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(SoundObject)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(SoundObject_extra_definitions "${SoundObject_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(SoundObject)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(SoundObject SHARED ${source_files})
add_library(SoundObject_Runtime SHARED ${source_files})
set_target_properties(SoundObject PROPERTIES COMPILE_DEFINITIONS "${SoundObject_extra_definitions}")
set_target_properties(SoundObject_Runtime PROPERTIES COMPILE_DEFINITIONS "${SoundObject_Runtime_extra_definitions}")
set_target_properties(SoundObject PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(SoundObject PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(SoundObject PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(SoundObject_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(SoundObject_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(SoundObject_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(SoundObject_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "SoundObject")
set_target_properties(SoundObject_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "SoundObject")
set_target_properties(SoundObject_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "SoundObject")
set_target_properties(SoundObject PROPERTIES PREFIX "")
set_target_properties(SoundObject_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(SoundObject PROPERTIES SUFFIX ".xgdwe")
set_target_properties(SoundObject_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(SoundObject PROPERTIES SUFFIX ".xgde")
set_target_properties(SoundObject_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(SoundObject_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "SoundObject")
gd_add_extension_target(SoundObject "${source_files}")
gdcpp_add_runtime_extension_target(SoundObject_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(SoundObject GDCore)
target_link_libraries(SoundObject GDCpp)
IF(WIN32)
target_link_libraries(SoundObject sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(SoundObject ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(SoundObject ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(SoundObject ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(SoundObject sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(SoundObject ${wxWidgets_LIBRARIES})
target_link_libraries(SoundObject ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(SoundObject)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(SoundObject_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(SoundObject_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(SoundObject_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(SoundObject_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(SoundObject_Runtime)

View File

@@ -2,158 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(TextEntryObject)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(TextEntryObject_extra_definitions "${TextEntryObject_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(TextEntryObject)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(TextEntryObject SHARED ${source_files})
add_library(TextEntryObject_Runtime SHARED ${source_files})
set_target_properties(TextEntryObject PROPERTIES COMPILE_DEFINITIONS "${TextEntryObject_extra_definitions}")
set_target_properties(TextEntryObject_Runtime PROPERTIES COMPILE_DEFINITIONS "${TextEntryObject_Runtime_extra_definitions}")
set_target_properties(TextEntryObject PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TextEntryObject PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TextEntryObject PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TextEntryObject_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TextEntryObject_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TextEntryObject_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TextEntryObject_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "TextEntryObject")
set_target_properties(TextEntryObject_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "TextEntryObject")
set_target_properties(TextEntryObject_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "TextEntryObject")
set_target_properties(TextEntryObject PROPERTIES PREFIX "")
set_target_properties(TextEntryObject_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(TextEntryObject PROPERTIES SUFFIX ".xgdwe")
set_target_properties(TextEntryObject_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(TextEntryObject PROPERTIES SUFFIX ".xgde")
set_target_properties(TextEntryObject_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(TextEntryObject_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "TextEntryObject")
gd_add_extension_target(TextEntryObject "${source_files}")
gdcpp_add_runtime_extension_target(TextEntryObject_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(TextEntryObject GDCore)
target_link_libraries(TextEntryObject GDCpp)
IF(WIN32)
target_link_libraries(TextEntryObject sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(TextEntryObject ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(TextEntryObject ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(TextEntryObject ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(TextEntryObject sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(TextEntryObject ${wxWidgets_LIBRARIES})
target_link_libraries(TextEntryObject ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(TextEntryObject)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(TextEntryObject_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(TextEntryObject_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(TextEntryObject_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(TextEntryObject_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(TextEntryObject_Runtime)

View File

@@ -2,175 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(TextObject)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
if(EMSCRIPTEN) #When compiling for the web, ensure we get no warning when using our own external libraries.
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --bind -Wno-warn-absolute-paths" )
ENDIF()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSEIF (NOT EMSCRIPTEN)
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(TextObject_extra_definitions "${TextObject_extra_definitions} GD_IDE_ONLY=1;")
IF (EMSCRIPTEN) #When compiling for the web, we do not want any GUI related feature.
add_definitions( -DGD_NO_WX_GUI )
add_definitions( -DEMSCRIPTEN )
ENDIF()
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(TextObject)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(TextObject SHARED ${source_files})
set_target_properties(TextObject PROPERTIES COMPILE_DEFINITIONS "${TextObject_extra_definitions}")
set_target_properties(TextObject PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TextObject PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TextObject PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TextObject PROPERTIES PREFIX "")
IF(NOT EMSCRIPTEN)
add_library(TextObject_Runtime SHARED ${source_files})
set_target_properties(TextObject_Runtime PROPERTIES COMPILE_DEFINITIONS "${TextObject_Runtime_extra_definitions}")
set_target_properties(TextObject_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TextObject_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TextObject_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TextObject_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "TextObject")
set_target_properties(TextObject_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "TextObject")
set_target_properties(TextObject_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "TextObject")
set_target_properties(TextObject_Runtime PROPERTIES PREFIX "")
ENDIF()
IF(WIN32)
set_target_properties(TextObject PROPERTIES SUFFIX ".xgdwe")
set_target_properties(TextObject_Runtime PROPERTIES SUFFIX ".xgdw")
ELSEIF(EMSCRIPTEN)
set_target_properties(DestroyOutsideAutomatism PROPERTIES SUFFIX ".bc")
ELSE()
set_target_properties(TextObject PROPERTIES SUFFIX ".xgde")
set_target_properties(TextObject_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
gd_add_extension_target(TextObject "${source_files}")
gdcpp_add_runtime_extension_target(TextObject_Runtime "${source_files}")
#Linker files for the IDE extension
###
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(TextObject GDCore)
target_link_libraries(TextObject GDCpp)
IF(WIN32)
target_link_libraries(TextObject sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(TextObject ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(TextObject ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(TextObject ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(TextObject sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(TextObject ${wxWidgets_LIBRARIES})
target_link_libraries(TextObject ${GTK_LIBRARIES})
ENDIF(WIN32)
ENDIF()
gd_extension_link_libraries(TextObject)
#Linker files for the GD C++ Runtime extension
###
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(TextObject_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(TextObject_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(TextObject_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(TextObject_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
ENDIF()
gdcpp_runtime_extension_link_libraries(TextObject_Runtime)

View File

@@ -3,108 +3,11 @@ cmake_policy(SET CMP0015 NEW)
project(TileMapObject)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
if(EMSCRIPTEN) #When compiling for the web, ensure we get no warning when using our own external libraries.
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --bind -Wno-warn-absolute-paths" )
ENDIF()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSEIF (NOT EMSCRIPTEN)
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(TileMapObject_extra_definitions "${TileMapObject_extra_definitions} GD_IDE_ONLY=1;")
IF (EMSCRIPTEN) #When compiling for the web, we do not want any GUI related feature.
add_definitions( -DGD_NO_WX_GUI )
add_definitions( -DEMSCRIPTEN )
ENDIF()
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(TileMapObject)
#The targets
###
@@ -120,6 +23,7 @@ set(source_files
)
set(gdide_source_files
${source_files}
TileMapObjectEditor.cpp
TileMapObjectEditorCommands.cpp
TileSetConfigurationEditor.cpp
@@ -131,66 +35,14 @@ set(gdide_source_files
TileMapDialogs.xrc
TileMapDialogs_wxsmith_bitmaps.cpp)
add_library(TileMapObject SHARED ${source_files} ${gdide_source_files})
set_target_properties(TileMapObject PROPERTIES COMPILE_DEFINITIONS "${TileMapObject_extra_definitions}")
set_target_properties(TileMapObject PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TileMapObject PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TileMapObject PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TileMapObject PROPERTIES PREFIX "")
IF(NOT EMSCRIPTEN)
add_library(TileMapObject_Runtime SHARED ${source_files})
set_target_properties(TileMapObject_Runtime PROPERTIES COMPILE_DEFINITIONS "${TileMapObject_Runtime_extra_definitions}")
set_target_properties(TileMapObject_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TileMapObject_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TileMapObject_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TileMapObject_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "TileMapObject")
set_target_properties(TileMapObject_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "TileMapObject")
set_target_properties(TileMapObject_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "TileMapObject")
set_target_properties(TileMapObject_Runtime PROPERTIES PREFIX "")
ENDIF()
IF(WIN32)
set_target_properties(TileMapObject PROPERTIES SUFFIX ".xgdwe")
set_target_properties(TileMapObject_Runtime PROPERTIES SUFFIX ".xgdw")
ELSEIF(EMSCRIPTEN)
set_target_properties(TileMapObject PROPERTIES SUFFIX ".bc")
ELSE()
set_target_properties(TileMapObject PROPERTIES SUFFIX ".xgde")
set_target_properties(TileMapObject_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
gd_add_extension_target(TileMapObject "${gdide_source_files}")
gdcpp_add_runtime_extension_target(TileMapObject_Runtime "${source_files}")
#Linker files for the IDE extension
###
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(TileMapObject GDCore)
target_link_libraries(TileMapObject GDCpp)
IF(WIN32)
target_link_libraries(TileMapObject sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(TileMapObject ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(TileMapObject ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(TileMapObject ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(TileMapObject sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(TileMapObject ${wxWidgets_LIBRARIES})
target_link_libraries(TileMapObject ${GTK_LIBRARIES})
ENDIF(WIN32)
ENDIF()
gd_extension_link_libraries(TileMapObject)
#Linker files for the GD C++ Runtime extension
###
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(TileMapObject_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(TileMapObject_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(TileMapObject_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(TileMapObject_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
ENDIF()
gdcpp_runtime_extension_link_libraries(TileMapObject_Runtime)

View File

@@ -2,175 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(TiledSpriteObject)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
if(EMSCRIPTEN) #When compiling for the web, ensure we get no warning when using our own external libraries.
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --bind -Wno-warn-absolute-paths" )
ENDIF()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSEIF (NOT EMSCRIPTEN)
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(TiledSpriteObject_extra_definitions "${TiledSpriteObject_extra_definitions} GD_IDE_ONLY=1;")
IF (EMSCRIPTEN) #When compiling for the web, we do not want any GUI related feature.
add_definitions( -DGD_NO_WX_GUI )
add_definitions( -DEMSCRIPTEN )
ENDIF()
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(TiledSpriteObject)
#The targets
###
include_directories(.)
file(GLOB_RECURSE source_files *)
add_library(TiledSpriteObject SHARED ${source_files})
set_target_properties(TiledSpriteObject PROPERTIES COMPILE_DEFINITIONS "${TiledSpriteObject_extra_definitions}")
set_target_properties(TiledSpriteObject PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TiledSpriteObject PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TiledSpriteObject PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TiledSpriteObject PROPERTIES PREFIX "")
IF(NOT EMSCRIPTEN)
add_library(TiledSpriteObject_Runtime SHARED ${source_files})
set_target_properties(TiledSpriteObject_Runtime PROPERTIES COMPILE_DEFINITIONS "${TiledSpriteObject_Runtime_extra_definitions}")
set_target_properties(TiledSpriteObject_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TiledSpriteObject_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TiledSpriteObject_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TiledSpriteObject_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "TiledSpriteObject")
set_target_properties(TiledSpriteObject_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "TiledSpriteObject")
set_target_properties(TiledSpriteObject_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "TiledSpriteObject")
set_target_properties(TiledSpriteObject_Runtime PROPERTIES PREFIX "")
ENDIF()
IF(WIN32)
set_target_properties(TiledSpriteObject PROPERTIES SUFFIX ".xgdwe")
set_target_properties(TiledSpriteObject_Runtime PROPERTIES SUFFIX ".xgdw")
ELSEIF(EMSCRIPTEN)
set_target_properties(TiledSpriteObject PROPERTIES SUFFIX ".bc")
ELSE()
set_target_properties(TiledSpriteObject PROPERTIES SUFFIX ".xgde")
set_target_properties(TiledSpriteObject_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
gd_add_extension_target(TiledSpriteObject "${source_files}")
gdcpp_add_runtime_extension_target(TiledSpriteObject_Runtime "${source_files}")
#Linker files for the IDE extension
###
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(TiledSpriteObject GDCore)
target_link_libraries(TiledSpriteObject GDCpp)
IF(WIN32)
target_link_libraries(TiledSpriteObject sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(TiledSpriteObject ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(TiledSpriteObject ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(TiledSpriteObject ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(TiledSpriteObject sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(TiledSpriteObject ${wxWidgets_LIBRARIES})
target_link_libraries(TiledSpriteObject ${GTK_LIBRARIES})
ENDIF(WIN32)
ENDIF()
gd_extension_link_libraries(TiledSpriteObject)
#Linker files for the GD C++ Runtime extension
###
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(TiledSpriteObject_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(TiledSpriteObject_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(TiledSpriteObject_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(TiledSpriteObject_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
ENDIF()
gdcpp_runtime_extension_link_libraries(TiledSpriteObject_Runtime)

View File

@@ -2,158 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(TimedEvent)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(TimedEvent_extra_definitions "${TimedEvent_extra_definitions} GD_IDE_ONLY=1;")
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(TimedEvent)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(TimedEvent SHARED ${source_files})
add_library(TimedEvent_Runtime SHARED ${source_files})
set_target_properties(TimedEvent PROPERTIES COMPILE_DEFINITIONS "${TimedEvent_extra_definitions}")
set_target_properties(TimedEvent_Runtime PROPERTIES COMPILE_DEFINITIONS "${TimedEvent_Runtime_extra_definitions}")
set_target_properties(TimedEvent PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TimedEvent PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TimedEvent PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TimedEvent_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TimedEvent_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TimedEvent_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TimedEvent_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "TimedEvent")
set_target_properties(TimedEvent_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "TimedEvent")
set_target_properties(TimedEvent_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "TimedEvent")
set_target_properties(TimedEvent PROPERTIES PREFIX "")
set_target_properties(TimedEvent_Runtime PROPERTIES PREFIX "")
IF(WIN32)
set_target_properties(TimedEvent PROPERTIES SUFFIX ".xgdwe")
set_target_properties(TimedEvent_Runtime PROPERTIES SUFFIX ".xgdw")
ELSE()
set_target_properties(TimedEvent PROPERTIES SUFFIX ".xgde")
set_target_properties(TimedEvent_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
set_target_properties(TimedEvent_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "TimedEvent")
gd_add_extension_target(TimedEvent "${source_files}")
gdcpp_add_runtime_extension_target(TimedEvent_Runtime "${source_files}")
#Linker files for the IDE extension
###
target_link_libraries(TimedEvent GDCore)
target_link_libraries(TimedEvent GDCpp)
IF(WIN32)
target_link_libraries(TimedEvent sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(TimedEvent ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(TimedEvent ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(TimedEvent ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(TimedEvent sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(TimedEvent ${wxWidgets_LIBRARIES})
target_link_libraries(TimedEvent ${GTK_LIBRARIES})
ENDIF(WIN32)
gd_extension_link_libraries(TimedEvent)
#Linker files for the GD C++ Runtime extension
###
target_link_libraries(TimedEvent_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(TimedEvent_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(TimedEvent_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(TimedEvent_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
gdcpp_runtime_extension_link_libraries(TimedEvent_Runtime)

View File

@@ -2,175 +2,24 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(TopDownMovementAutomatism)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
if(EMSCRIPTEN) #When compiling for the web, ensure we get no warning when using our own external libraries.
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --bind -Wno-warn-absolute-paths" )
ENDIF()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime)
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSEIF (NOT EMSCRIPTEN)
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
ENDIF(WIN32)
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp) #Ensure that the build will work even when GDC++ is not in the target list.
link_directories(${GDCpp_lib_dir})
ENDIF()
IF(NOT TARGET GDCpp_Runtime)
add_library(GDCpp_Runtime SHARED IMPORTED)
IF(WIN32)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/GDCpp.dll)
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.dll.a)
ELSE()
set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_LOCATION ${GDCpp_Runtime_lib_dir}/libGDCpp.so)
#set_property(TARGET GDCpp_Runtime PROPERTY IMPORTED_IMPLIB ${GDCpp_Runtime_lib_dir}/libGDCpp.so.a)
ENDIF(WIN32)
ENDIF()
gd_add_extension_includes()
#Defines
###
set(TopDownMovementAutomatism_extra_definitions "${TopDownMovementAutomatism_extra_definitions} GD_IDE_ONLY=1;")
IF (EMSCRIPTEN) #When compiling for the web, we do not want any GUI related feature.
add_definitions( -DGD_NO_WX_GUI )
add_definitions( -DEMSCRIPTEN )
ENDIF()
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_definitions( -DDEBUG )
IF(WIN32)
add_definitions( __WXDEBUG__ )
ENDIF(WIN32)
ELSEIF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
add_definitions( -DRELEASE )
ELSE()
add_definitions( -DDEV )
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
IF(WIN32)
add_definitions( -DWINDOWS )
add_definitions( "-DGD_CORE_API=__declspec(dllimport)" )
add_definitions( "-DGD_API=__declspec(dllimport)" )
add_definitions( "-DGD_EXTENSION_API=__declspec(dllexport)" )
add_definitions( -D__GNUWIN32__ )
add_definitions( -D__WXMSW__ )
add_definitions( -DwxUSE_UNICODE=1 )
add_definitions( -DWXUSINGDLL )
ELSE()
IF(APPLE)
add_definitions( -DMACOS )
ELSE()
add_definitions( -DLINUX )
ENDIF()
add_definitions( -DGD_API= )
add_definitions( -DGD_CORE_API= )
add_definitions( -DGD_EXTENSION_API= )
add_definitions(${GTK_CFLAGS_OTHER})
ENDIF(WIN32)
gd_add_extension_definitions(TopDownMovementAutomatism)
#The targets
###
include_directories(.)
file(GLOB source_files *)
add_library(TopDownMovementAutomatism SHARED ${source_files})
set_target_properties(TopDownMovementAutomatism PROPERTIES PREFIX "")
set_target_properties(TopDownMovementAutomatism PROPERTIES COMPILE_DEFINITIONS "${TopDownMovementAutomatism_extra_definitions}")
set_target_properties(TopDownMovementAutomatism PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TopDownMovementAutomatism PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
set_target_properties(TopDownMovementAutomatism PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions")
IF(NOT EMSCRIPTEN)
add_library(TopDownMovementAutomatism_Runtime SHARED ${source_files})
set_target_properties(TopDownMovementAutomatism_Runtime PROPERTIES COMPILE_DEFINITIONS "${TopDownMovementAutomatism_Runtime_extra_definitions}")
set_target_properties(TopDownMovementAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TopDownMovementAutomatism_Runtime PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TopDownMovementAutomatism_Runtime PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Extensions/Runtime")
set_target_properties(TopDownMovementAutomatism_Runtime PROPERTIES RUNTIME_OUTPUT_NAME "TopDownMovementAutomatism")
set_target_properties(TopDownMovementAutomatism_Runtime PROPERTIES LIBRARY_OUTPUT_NAME "TopDownMovementAutomatism")
set_target_properties(TopDownMovementAutomatism_Runtime PROPERTIES ARCHIVE_OUTPUT_NAME "TopDownMovementAutomatism")
set_target_properties(TopDownMovementAutomatism_Runtime PROPERTIES PREFIX "")
ENDIF()
IF(WIN32)
set_target_properties(TopDownMovementAutomatism PROPERTIES SUFFIX ".xgdwe")
set_target_properties(TopDownMovementAutomatism_Runtime PROPERTIES SUFFIX ".xgdw")
ELSEIF(EMSCRIPTEN)
set_target_properties(DraggableAutomatism PROPERTIES SUFFIX ".bc")
ELSE()
set_target_properties(TopDownMovementAutomatism PROPERTIES SUFFIX ".xgde")
set_target_properties(TopDownMovementAutomatism_Runtime PROPERTIES SUFFIX ".xgd")
ENDIF(WIN32)
gd_add_extension_target(TopDownMovementAutomatism "${source_files}")
gdcpp_add_runtime_extension_target(TopDownMovementAutomatism_Runtime "${source_files}")
#Linker files for the IDE extension
###
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(TopDownMovementAutomatism GDCore)
target_link_libraries(TopDownMovementAutomatism GDCpp)
IF(WIN32)
target_link_libraries(TopDownMovementAutomatism sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(TopDownMovementAutomatism ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(TopDownMovementAutomatism ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(TopDownMovementAutomatism ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(TopDownMovementAutomatism sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(TopDownMovementAutomatism ${wxWidgets_LIBRARIES})
target_link_libraries(TopDownMovementAutomatism ${GTK_LIBRARIES})
ENDIF(WIN32)
ENDIF()
gd_extension_link_libraries(TopDownMovementAutomatism)
#Linker files for the GD C++ Runtime extension
###
IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(TopDownMovementAutomatism_Runtime GDCpp_Runtime)
IF(WIN32)
target_link_libraries(TopDownMovementAutomatism_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(TopDownMovementAutomatism_Runtime ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(TopDownMovementAutomatism_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
ENDIF(WIN32)
ENDIF()
gdcpp_runtime_extension_link_libraries(TopDownMovementAutomatism_Runtime)

View File

@@ -3,35 +3,10 @@ cmake_policy(SET CMP0015 NEW)
project(GDCpp)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
if(EMSCRIPTEN) #When compiling for the web, ensure we get no warning when using our own external libraries.
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --bind -Wno-warn-absolute-paths" )
ENDIF()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
#Define common directories:
set(GDCpp_include_dir ${GD_base_dir}/GDCpp PARENT_SCOPE)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME} PARENT_SCOPE)
set(GDCpp_Runtime_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/CppPlatform/Runtime PARENT_SCOPE)
#Dependencies on external libraries:
###
@@ -39,7 +14,7 @@ include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSEIF (NOT NO_GUI)
ELSEIF (NOT EMSCRIPTEN AND NOT NO_GUI)
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
@@ -110,7 +85,7 @@ file(GLOB_RECURSE source_gdcpp_tools GDCpp/Tools/*)
set(source_files ${source_gdcpp} ${source_gdcpp_builtin} ${source_gdcpp_events} ${source_gdcpp_ide} ${source_gdcpp_platfdef} ${source_gdcpp_serialization} ${source_gdcpp_tinyxml} ${source_gdcpp_tools})
set(ide_source_files ${source_gdcpp} ${source_gdcpp_builtin} ${source_gdcpp_events} ${source_gdcpp_ide} ${source_gdcpp_platfdef} ${source_gdcpp_serialization} ${source_gdcpp_tinyxml} ${source_gdcpp_tools})
IF (NOT NO_GUI)
list(APPEND ide_source_files ${source_gdcpp_ide_dialogs})
list(APPEND ide_source_files ${source_gdcpp_ide_dialogs})
ENDIF()
file(GLOB_RECURSE exe_source_files Runtime/*)
@@ -123,7 +98,7 @@ set_target_properties(GDCpp PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/
IF(EMSCRIPTEN)
set_target_properties(GDCpp PROPERTIES SUFFIX ".bc")
ELSE() #Runtime targets are only generated for linux and windows.
ELSE()
add_library(GDCpp_Runtime SHARED ${source_files})
add_executable(GDCpp_Runtime_exe WIN32 ${exe_source_files})
set_target_properties(GDCpp_Runtime PROPERTIES COMPILE_DEFINITIONS "${GDCpp_Runtime_extra_definitions}")
@@ -152,20 +127,9 @@ IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(GDCpp GDCore)
IF(WIN32)
target_link_libraries(GDCpp sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(GDCpp ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(GDCpp ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(GDCpp ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(GDCpp sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(GDCpp ${wxWidgets_LIBRARIES})
target_link_libraries(GDCpp ${GTK_LIBRARIES})
ENDIF(WIN32)
target_link_libraries(GDCpp ${sfml_LIBRARIES})
target_link_libraries(GDCpp ${wxWidgets_LIBRARIES})
target_link_libraries(GDCpp ${GTK_LIBRARIES})
ENDIF()
#Linker files for Runtime
@@ -174,18 +138,8 @@ IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(GDCpp_Runtime_exe GDCpp_Runtime)
IF(WIN32)
target_link_libraries(GDCpp_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(GDCpp_Runtime_exe sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(GDCpp_Runtime ws2_32 user32 opengl32 glu32)
target_link_libraries(GDCpp_Runtime_exe ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(GDCpp_Runtime sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(GDCpp_Runtime_exe sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF (NOT APPLE)
target_link_libraries(GDCpp_Runtime_exe GLU GL)
ENDIF()
ENDIF(WIN32)
target_link_libraries(GDCpp_Runtime ${sfml_LIBRARIES})
target_link_libraries(GDCpp_Runtime_exe ${sfml_LIBRARIES})
ENDIF()
#Post build tasks
@@ -214,9 +168,8 @@ if(BUILD_TESTS)
tests/*
)
add_executable(GDCpp_tests ${test_source_files})
set_target_properties(GDCpp_tests PROPERTIES COMPILE_DEFINITIONS "${GDCpp_Runtime_exe_extra_definitions}")
set_target_properties(GDCpp_tests PROPERTIES BUILD_WITH_INSTALL_RPATH FALSE) #Allow finding dependencies directly from build path on Mac OS X.
target_link_libraries(GDCpp_tests GDCpp_Runtime)
target_link_libraries(GDCpp_tests sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF (NOT APPLE)
target_link_libraries(GDCpp_tests GLU GL)
ENDIF()
target_link_libraries(GDCpp_tests ${sfml_LIBRARIES})
endif()

View File

@@ -228,7 +228,7 @@ std::string GD_API VariableStructureToJSON(const gd::Variable & variable)
if ( variable.IsNumber() )
return ToString(variable.GetValue());
else
return "\""+StringToQuotedJSONString(variable.GetString().c_str())+"\"";
return StringToQuotedJSONString(variable.GetString().c_str());
}
std::string str = "{";
@@ -237,7 +237,7 @@ std::string GD_API VariableStructureToJSON(const gd::Variable & variable)
i != variable.GetAllChildren().end();++i)
{
if ( !firstChild ) str += ",";
str += "\""+i->first+"\": "+VariableStructureToJSON(i->second);
str += StringToQuotedJSONString(i->first.c_str())+": "+VariableStructureToJSON(i->second);
firstChild = false;
}

View File

@@ -11,7 +11,7 @@
#include <string>
/**
* \brief Wrapper allowing to load a dynamic library and launch a specific function ( See the full description ).
* \brief Wrapper allowing to load a dynamic library and launch a specific function.
*
* RuntimeScene uses this class to launch compiled events. In particular, the signature of the function
* of the dynamic library must be :
@@ -51,7 +51,7 @@ public:
/**
* Execute the function specified during the call to LoadFromDynamicLibrary
*
* \warning Beware, there is no protection against calling Execute on an CodeExecutionEngine that is not ( or badly ) initialized.
* \warning Beware, there is no protection against calling Execute on an CodeExecutionEngine that is not (or badly) initialized.
*/
void Execute() { ((void(*)(RuntimeContext *))function)(&runtimeContext); };

View File

@@ -4,7 +4,7 @@
* \section welcome Welcome
* This is the help file for the GDevelop C++ Platform, which contains a reference of all the features provided
* by the C++ Platform and explains how to create extensions for this platform.<br>
* Creating extensions need some knowledge in C++ language. GDevelop use mainly SFML, Boost and wxWidgets libraries.
* Creating extensions need some knowledge in C++ language. GDevelop use mainly SFML and wxWidgets libraries.
*
* ### GDevelop Core documentation
* Some classes and features are provided by the *GDevelop Core library*: When you're working with a class in the <code>gd</code>
@@ -34,13 +34,13 @@
* <br>
* It is important to make the distinction between the classes used by the IDE or for storage only and the classes used by the game engine.<br>
* When a game is being played, it is first loaded using the classes listed below. Then, in a second part, the game engine classes are initialized, most
* of the time using their <i>edittime</i> class counterpart ( For example, a RuntimeScene can be loaded from a gd::Layout: See below ).<br>
* of the time using their <i>edittime</i> class counterpart (For example, a RuntimeScene can be loaded from a gd::Layout: See below).<br>
* <br>
* <i>Edittime</i> is often used to refer to a class being used for storage or by the IDE, while <i>Runtime</i> is used to refer to the class
* belonging to the game engine.
*
* \subsection game gd::Project ( also named Game )
* A game is represented by a gd::Project class. This class contains the scenes of the game ( see below ), as well as the images, the global objects and some information.<br>
* \subsection game gd::Project (also named Game)
* A game is represented by a gd::Project class. This class contains the scenes of the game (see below), as well as the images, the global objects and some game properties.<br>
* When a game is played, the RuntimeScene being rendered contains a pointer to its parent gd::Project.
*
* \subsection scene gd::Layout
@@ -55,23 +55,24 @@
*
* \subsection automatism gd::Automatism
* Each automatism is an instance of a class that derive from gd::Automatism. Automatisms are linked to an object ( Thus, automatisms can access to their object by using their member object* ) and they are also managed by this object.<br>
* Each automatism is an instance of a class that derive from gd::Automatism. Automatisms are linked to an object (thus, automatisms can access to their object by using their member `object`) and they are also managed by this object.<br>
* gd::Automatism is the only exception to the rule explained below: Whereas the classes described in this section are used only for storage, this class
* is used both for storage and by the game engine.
*
* \subsection event gd::BaseEvent
* BaseEvent is the base class for all events.<br>
* Each event type is represented by a class, which define how the event is rendered ( BaseEvent::Render ), how the code is generated ( BaseEvent::GenerateEventCode ), and various properties ( BaseEvent::CanHaveSubEvents for example )...<br>
* Each event type is represented by a class, which define how the event is rendered (BaseEvent::Render), how the code is generated (BaseEvent::GenerateEventCode), and various properties (BaseEvent::CanHaveSubEvents for example)...<br>
* As the other classes list in this section, this class is only at <i>edittime</i> used by the IDE.
*
* The classes described in this section are not documented here: Please refer to the documentation of <b>GDevelop Core</b> if you need help using them.
*
* \section aboutBoostShared_ptr About Boost shared pointers
* \section aboutShared_ptr About shared pointers
*
* GDevelop use shared pointers ( std::shared_ptr ), for scenes or objects for example. <br>
* Shared pointers are used like raw pointers ( *myPointer to dereference the pointer and get the object, myPointer->myMember to access to a function/member of the object... ).
* They doesn't need to be deleted manually: The pointed object is deleted when no more shared pointers are pointing to the object.
* Thus, scenes for instance don't have to manually delete the objects they own in their destructors.
* GDevelop use shared pointers (`std::shared_ptr`), for managing lots of objects like scenes or objects.
*
* Shared pointers are used like raw pointers (*myPointer to dereference the pointer and get the object, myPointer->myMember to access to a function/member of the object...).
* They don't need to be deleted manually: The pointed object is deleted when no more shared pointers are pointing to the object.
* For instance, scenes don't have to manually delete the objects they own in their destructors.
*/
//Group definitions:

View File

@@ -221,12 +221,10 @@ namespace
std::shared_ptr<ExtensionBase> extension = std::dynamic_pointer_cast<ExtensionBase>(gdExtension);
if ( extension == std::shared_ptr<ExtensionBase>() ) continue;
#if defined(MACOS)
if ( wxFileExists(CodeCompiler::Get()->GetBaseDirectory()+"CppPlatform/Extensions/"+"lib"+extension->GetName()+".a") ||
wxFileExists(CodeCompiler::Get()->GetBaseDirectory()+"CppPlatform/Extensions/"+"lib"+extension->GetName()+".dll.a") ||
wxFileExists(CodeCompiler::Get()->GetBaseDirectory()+"CppPlatform/Extensions/"+"lib"+extension->GetName()+".dylib") )
task.compilerCall.extraLibFiles.push_back(extension->GetName());
#endif
for (unsigned int j =0;j<extension->GetSupplementaryLibFiles().size();++j)
{

View File

@@ -351,6 +351,7 @@ void CppLayoutPreviewer::SetParentAuiManager(wxAuiManager * manager)
{
if ( !debugger )
{
wxLogNull noLogPlease; //Avoid libpng warnings.
debugger = std::shared_ptr<DebuggerGUI>(new DebuggerGUI(editor.GetParentControl(), previewScene) );
if ( !parentAuiManager->GetPane("DBG").IsOk() )
parentAuiManager->AddPane( debugger.get(), wxAuiPaneInfo().Name( wxT( "DBG" ) ).Float().CloseButton( true ).Caption( _( "Debugger" ) ).MaximizeButton( true ).MinimizeButton( false ).CaptionVisible(true).MinSize(200, 100).Show(false) );

View File

@@ -33,18 +33,5 @@ struct ObjectHasName : public std::binary_function<std::shared_ptr<gd::Object>,
bool operator()(const std::shared_ptr<gd::Object> & object, const std::string & name) const { return object->GetName() == name; }
};
/**
* \brief Functor for sorting an RuntimeObjList by ZOrder
*
* \see Object
*/
struct SortByZOrder
{
bool operator ()(RuntimeObjSPtr o1, RuntimeObjSPtr o2) const
{
return o1->GetZOrder() < o2->GetZOrder();
}
};
#endif // OBJECTHELPERS_H

View File

@@ -247,9 +247,9 @@ void RuntimeScene::Render()
//Sort object by order to render them
RuntimeObjList allObjects = objectsInstances.GetAllObjects();
OrderObjectsByZOrder( allObjects );
OrderObjectsByZOrder(allObjects);
//To allow using OpenGL to draw :
//To allow using OpenGL to draw:
glClear(GL_DEPTH_BUFFER_BIT); // Clear the depth buffer
renderWindow->pushGLStates();
renderWindow->setActive();
@@ -335,12 +335,16 @@ bool RuntimeScene::UpdateTime()
return true;
}
bool RuntimeScene::OrderObjectsByZOrder( RuntimeObjList & objList )
bool RuntimeScene::OrderObjectsByZOrder(RuntimeObjList & objList)
{
if ( StandardSortMethod() )
std::sort( objList.begin(), objList.end(), SortByZOrder() );
std::sort( objList.begin(), objList.end(), [](const RuntimeObjSPtr & o1, const RuntimeObjSPtr & o2) {
return o1->GetZOrder() < o2->GetZOrder();
});
else
std::stable_sort( objList.begin(), objList.end(), SortByZOrder() );
std::stable_sort( objList.begin(), objList.end(), [](const RuntimeObjSPtr & o1, const RuntimeObjSPtr & o2) {
return o1->GetZOrder() < o2->GetZOrder();
});
return true;
}

View File

@@ -22,8 +22,9 @@ class wxWindow;
#endif
/**
* \brief Wrapper around a pointer to Animation. Used to reduce compile time.
* Animation proxy is used to avoid including Animation.h/Direction.h/Sprite.h and SFML headers
* \brief Wrapper around a pointer to Animation, used to reduce compile time.
*
* This proxy is used to avoid including Animation.h/Direction.h/Sprite.h and SFML headers.
*/
class GD_API AnimationProxy
{

View File

@@ -705,7 +705,7 @@ EXCLUDE_PATTERNS =
# wildcard * is used, a substring. Examples: ANamespace, AClass,
# AClass::ANamespace, ANamespace::*Test
EXCLUDE_SYMBOLS =
EXCLUDE_SYMBOLS = TiXml*
# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see

View File

@@ -29,6 +29,10 @@ IF NOT EXIST "%MINGW_DIR%" set MINGW_DIR="C:\MinGW"
IF EXIST "%MINGW_DIR%" (
xcopy "%MINGW_DIR%" "%destDir%\MinGW32\" /E /D /Q
::Delete fat gdb.exe (+/-30mb)
del "%destDir%\MinGW32\bin\gdb.exe"
::Delete fat installer (+/-30mb)
del "%destDir%\MinGW32\__installer\"*.exe
echo Done - MinGW found in %MINGW_DIR%
) ELSE (
echo MinGW not found!

View File

@@ -0,0 +1,46 @@
/*
* GDevelop C++ Platform
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
* This project is released under the MIT License.
*/
/**
* @file Tests covering network features and JSON serialization.
*/
#include "catch.hpp"
#include "GDCore/CommonTools.h"
#include "GDCore/PlatformDefinition/ClassWithObjects.h"
#include "GDCore/PlatformDefinition/Layout.h"
#include "GDCpp/RuntimeScene.h"
#include "GDCpp/RuntimeGame.h"
#include "GDCpp/BuiltinExtensions/NetworkTools.h"
TEST_CASE( "NetworkTools", "[game-engine]" ) {
SECTION("gd::Variable from/to JSON conversions") {
SECTION("Basics") {
gd::Variable var;
std::string originalJSON = "{\"ok\": true,\"hello\": \"world\"}";
JSONToVariableStructure(originalJSON, var);
REQUIRE(VariableStructureToJSON(var) == "{\"hello\": \"world\",\"ok\": 1}");
}
SECTION("Quotes and special characters") {
gd::Variable var;
std::string originalJSON = "{\"\\\"hello\\\"\": \" \\\"quote\\\" \",\"caret-prop\": 1,\"special-\\b\\f\\n\\r\\t\\\"\": \"\\b\\f\\n\\r\\t\"}";
JSONToVariableStructure(originalJSON, var);
REQUIRE(VariableStructureToJSON(var) == originalJSON);
}
SECTION("Array") {
//For gd::Variables, arrays are converted to properties called "0", "1"...
gd::Variable var;
std::string originalJSON = "[\"Hello\", 42, {\"a\": \"world\"}]";
JSONToVariableStructure(originalJSON, var);
REQUIRE(var.GetChild("0").GetString() == "Hello");
REQUIRE(var.GetChild("1").GetValue() == 42);
REQUIRE(var.GetChild("2").GetChild("a").GetString() == "world");
REQUIRE(VariableStructureToJSON(var) == "{\"0\": \"Hello\",\"1\": 42,\"2\": {\"a\": \"world\"}}");
}
}
}

View File

@@ -2,48 +2,13 @@ cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0015 NEW)
project(GDJS)
#Sanity checks
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
if(EMSCRIPTEN) #When compiling for the web, ensure we get no warning when using our own external libraries.
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --bind -Wno-warn-absolute-paths" )
ENDIF()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
#Dependencies on external libraries:
###
include_directories(${sfml_include_dir})
include_directories(${GDCORE_include_dir})
IF(NOT TARGET GDCore) #Ensure that the build will work even when GDCore is not in the target list.
link_directories(${GDCORE_lib_dir})
ENDIF()
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSEIF (NOT EMSCRIPTEN)
ELSEIF (NOT EMSCRIPTEN AND NOT NO_GUI)
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
@@ -106,12 +71,12 @@ add_library(
)
IF(EMSCRIPTEN)
set_target_properties(GDJS PROPERTIES SUFFIX ".bc")
ENDIF()
IF(WIN32)
ELSEIF(WIN32)
set_target_properties(GDJS PROPERTIES PREFIX "")
ELSE()
set_target_properties(GDJS PROPERTIES PREFIX "lib")
ENDIF(WIN32)
ENDIF()
set_target_properties(GDJS PROPERTIES MACOS_RPATH "..")
set(LIBRARY_OUTPUT_PATH ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/JsPlatform)
set(ARCHIVE_OUTPUT_PATH ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/JsPlatform)
set(RUNTIME_OUTPUT_PATH ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/JsPlatform)
@@ -122,18 +87,9 @@ IF(EMSCRIPTEN)
#Nothing.
ELSE()
target_link_libraries(GDJS GDCore)
IF(WIN32)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(GDJS ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_webview.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(GDJS ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_webview.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(GDJS ws2_32 user32)
ELSE()
target_link_libraries(GDJS ${wxWidgets_LIBRARIES})
target_link_libraries(GDJS ${GTK_LIBRARIES})
ENDIF(WIN32)
target_link_libraries(GDJS ${sfml_LIBRARIES})
target_link_libraries(GDJS ${wxWidgets_LIBRARIES}) #Add wxWidgets libraries if needed.
target_link_libraries(GDJS ${GTK_LIBRARIES}) #Add GTK libraries if needed (Linux only).
ENDIF()
#Post build tasks

View File

@@ -5,14 +5,16 @@
*/
/**
* Represents a layer used to display objects.<br>
* Represents a layer used to display objects.
*
* The layer connects its Pixi container to the Pixi stage during its construction,
* but then it is objects responsibility to connect themselves to the layer's container
* ( See addChildToPIXIContainer method ).<br>
* (see addChildToPIXIContainer method).
*
* Layers do not provide direct access to their pixi container as they do some extra work
* to ensure that z orders remains correct.
*
* <b>TODO:</b> Viewports and support for multiple cameras
* *Not yet implemented:* Viewports and support for multiple cameras
*
* @class Layer
* @namespace gdjs

View File

@@ -5,10 +5,12 @@
*/
/**
* RuntimeObject represents an object being used on a RuntimeScene.<br>
* RuntimeObject represents an object being used on a RuntimeScene.
*
* The constructor can be called on an already existing RuntimeObject:
* In this case, the constructor will try to reuse as much already existing members
* as possible ( Recycling ).<br>
* as possible (recycling).
*
* However, you should not be calling the constructor on an already existing object
* which is not a RuntimeObject.
*

View File

@@ -141,8 +141,6 @@ gdjs.SpriteAnimation = function(imageManager, animData)
/**
* The SpriteRuntimeObject represents an object that can display images.
*
* <b>TODO:</b> custom collisions masks.
*
* @class SpriteRuntimeObject
* @namespace gdjs
* @extends runtimeObject

View File

@@ -3,35 +3,6 @@ cmake_policy(SET CMP0015 NEW)
project(GDIDE)
#Sanity checks and options
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "")
message( "CMAKE_BUILD_TYPE is empty, assuming build type is Release" )
set(CMAKE_BUILD_TYPE Release)
ENDIF()
if(CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
ENDIF()
endif()
#Common directories:
###
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR}/..)
set(GDCORE_include_dir ${GD_base_dir}/Core)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(GDCpp_include_dir ${GD_base_dir}/GDCpp)
set(GDCpp_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
IF(WIN32) #Special case for wxWidgets on Windows
set(wxwidgets_include_dir ${GD_base_dir}/ExtLibs/wxwidgets/include)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswud)
ELSE()
set(wxwidgets_include_dir ${wxwidgets_include_dir} ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll/mswu)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(wxwidgets_lib_dir ${GD_base_dir}/ExtLibs/wxwidgets/lib/gcc_dll)
ENDIF(WIN32)
#Dependencies on external libraries:
###
include_directories(${sfml_include_dir})
@@ -39,7 +10,7 @@ include_directories(${GDCORE_include_dir})
include_directories(${GDCpp_include_dir})
IF(WIN32) #Special case for wxWidgets on Windows
include_directories(${wxwidgets_include_dir})
ELSE()
ELSE(NOT EMSCRIPTEN AND NOT NO_GUI)
find_package(wxWidgets COMPONENTS core base adv net ribbon stc aui propgrid richtext html xrc REQUIRED)
include( "${wxWidgets_USE_FILE}" )
include_directories(${GTK_INCLUDE_DIRS})
@@ -98,46 +69,31 @@ set_target_properties(GDIDE PROPERTIES PREFIX "")
set_target_properties(GDIDE PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}")
set_target_properties(GDIDE PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}")
set_target_properties(GDIDE PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}")
set_target_properties(GDIDE PROPERTIES MACOS_RPATH ".")
IF(WIN32)
set_target_properties(GDIDE_exe PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/")
set_target_properties(GDIDE_dev_exe PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/")
set_target_properties(GDIDE_exe PROPERTIES RUNTIME_OUTPUT_NAME "GDIDE")
set_target_properties(GDIDE_dev_exe PROPERTIES RUNTIME_OUTPUT_NAME "GDIDE_dev")
set_target_properties(GDIDE_exe PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/")
set_target_properties(GDIDE_dev_exe PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/")
set_target_properties(GDIDE_exe PROPERTIES RUNTIME_OUTPUT_NAME "GDIDE")
set_target_properties(GDIDE_dev_exe PROPERTIES RUNTIME_OUTPUT_NAME "GDIDE_dev")
ENDIF(WIN32)
#Linker files for GDIDE
###
target_link_libraries(GDIDE GDCore)
target_link_libraries(GDIDE GDCpp)
target_link_libraries(GDIDE ${sfml_LIBRARIES})
target_link_libraries(GDIDE ${wxWidgets_LIBRARIES}) #Add wxWidgets libraries if needed.
target_link_libraries(GDIDE ${GTK_LIBRARIES}) #Add GTK libraries if needed (Linux only).
IF(WIN32)
target_link_libraries(GDIDE sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(GDIDE_exe sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(GDIDE_dev_exe sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(GDIDE ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_webview.a ${wxwidgets_lib_dir}/libwxmsw30ud_xrc.a ${wxwidgets_lib_dir}/libwxmsw30ud_stc.a ${wxwidgets_lib_dir}/libwxmsw30ud_richtext.a ${wxwidgets_lib_dir}/libwxmsw30ud_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30ud_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30ud_aui.a ${wxwidgets_lib_dir}/libwxmsw30ud_adv.a ${wxwidgets_lib_dir}/libwxmsw30ud_html.a ${wxwidgets_lib_dir}/libwxmsw30ud_core.a ${wxwidgets_lib_dir}/libwxbase30ud_xml.a ${wxwidgets_lib_dir}/libwxbase30ud_net.a ${wxwidgets_lib_dir}/libwxexpatd.a ${wxwidgets_lib_dir}/libwxbase30ud.a ${wxwidgets_lib_dir}/libwxpngd.a ${wxwidgets_lib_dir}/libwxjpegd.a ${wxwidgets_lib_dir}/libwxzlibd.a ${wxwidgets_lib_dir}/libwxtiffd.a)
ELSE()
target_link_libraries(GDIDE ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_webview.a ${wxwidgets_lib_dir}/libwxmsw30u_xrc.a ${wxwidgets_lib_dir}/libwxmsw30u_stc.a ${wxwidgets_lib_dir}/libwxmsw30u_richtext.a ${wxwidgets_lib_dir}/libwxmsw30u_propgrid.a ${wxwidgets_lib_dir}/libwxmsw30u_ribbon.a ${wxwidgets_lib_dir}/libwxmsw30u_aui.a ${wxwidgets_lib_dir}/libwxmsw30u_adv.a ${wxwidgets_lib_dir}/libwxmsw30u_html.a ${wxwidgets_lib_dir}/libwxmsw30u_core.a ${wxwidgets_lib_dir}/libwxbase30u_xml.a ${wxwidgets_lib_dir}/libwxbase30u_net.a ${wxwidgets_lib_dir}/libwxexpat.a ${wxwidgets_lib_dir}/libwxbase30u.a ${wxwidgets_lib_dir}/libwxpng.a ${wxwidgets_lib_dir}/libwxjpeg.a ${wxwidgets_lib_dir}/libwxzlib.a ${wxwidgets_lib_dir}/libwxtiff.a)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_link_libraries(GDIDE ws2_32 user32 opengl32 glu32)
target_link_libraries(GDIDE_exe ws2_32 user32 opengl32 glu32)
target_link_libraries(GDIDE_dev_exe ws2_32 user32 opengl32 glu32)
ELSE()
target_link_libraries(GDIDE sfml-audio sfml-graphics sfml-window sfml-network sfml-system)
target_link_libraries(GDIDE ${wxWidgets_LIBRARIES})
target_link_libraries(GDIDE ${GTK_LIBRARIES})
IF (NOT APPLE)
target_link_libraries(GDIDE GLU GL)
ENDIF()
target_link_libraries(GDIDE_exe ${sfml_LIBRARIES})
target_link_libraries(GDIDE_dev_exe ${sfml_LIBRARIES})
ENDIF(WIN32)
#Pre build tasks
###
IF(NOT WIN32 AND NOT EMSCRIPTEN)
IF (NOT APPLE)
execute_process(COMMAND sh cleanLinuxLibraries.sh ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/
WORKING_DIRECTORY ${GD_base_dir}/IDE/scripts)
ENDIF()
IF(NOT WIN32 AND NOT EMSCRIPTEN AND NOT APPLE)
execute_process(COMMAND sh cleanLinuxLibraries.sh ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/
WORKING_DIRECTORY ${GD_base_dir}/IDE/scripts)
ENDIF()
#Post build tasks
@@ -162,7 +118,7 @@ ELSE()
IF (APPLE)
add_custom_command(TARGET GDIDE
POST_BUILD
COMMAND sh "copyMacOSLibraries.sh" ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/ ${CMAKE_BINARY_DIR}/ExtLibs/SFML/lib
COMMAND sh "copyMacOSLibraries.sh" ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/ ${CMAKE_BINARY_DIR}/ExtLibs/SFML/lib ${GD_base_dir}/ExtLibs/SFML
WORKING_DIRECTORY ${GD_base_dir}/IDE/scripts)
ELSE()
add_custom_command(TARGET GDIDE
@@ -175,7 +131,7 @@ ENDIF()
#Installation (Linux only)
###
IF(NOT WIN32)
IF(NOT WIN32 AND NOT APPLE)
install(DIRECTORY ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/ DESTINATION "${GD_INSTALL_PREFIX}")
install(FILES ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/GDIDE DESTINATION "${GD_INSTALL_PREFIX}" PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ )

View File

@@ -1,85 +0,0 @@
#include "ConsoleFrame.h"
//(*InternalHeaders(ConsoleFrame)
#include <wx/artprov.h>
#include <wx/bitmap.h>
#include <wx/intl.h>
#include <wx/image.h>
#include <wx/string.h>
//*)
#include <iostream>
//(*IdInit(ConsoleFrame)
const long ConsoleFrame::ID_STATICBITMAP1 = wxNewId();
const long ConsoleFrame::ID_STATICTEXT1 = wxNewId();
const long ConsoleFrame::ID_TEXTCTRL1 = wxNewId();
const long ConsoleFrame::ID_BUTTON1 = wxNewId();
const long ConsoleFrame::ID_PANEL1 = wxNewId();
//*)
BEGIN_EVENT_TABLE(ConsoleFrame,wxFrame)
//(*EventTable(ConsoleFrame)
//*)
END_EVENT_TABLE()
ConsoleFrame::ConsoleFrame(wxWindow* parent,wxWindowID id,const wxPoint& pos,const wxSize& size)
{
//(*Initialize(ConsoleFrame)
wxFlexGridSizer* FlexGridSizer3;
wxFlexGridSizer* FlexGridSizer2;
wxFlexGridSizer* FlexGridSizer1;
Create(parent, id, _("GDevelop Console"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("id"));
SetClientSize(wxDefaultSize);
Move(wxDefaultPosition);
FlexGridSizer1 = new wxFlexGridSizer(0, 3, 0, 0);
FlexGridSizer1->AddGrowableCol(0);
FlexGridSizer1->AddGrowableRow(0);
Panel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL1"));
FlexGridSizer2 = new wxFlexGridSizer(0, 1, 0, 0);
FlexGridSizer2->AddGrowableCol(0);
FlexGridSizer2->AddGrowableRow(1);
FlexGridSizer3 = new wxFlexGridSizer(0, 3, 0, 0);
StaticBitmap1 = new wxStaticBitmap(Panel1, ID_STATICBITMAP1, wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(_T("wxART_WARNING")),wxART_OTHER), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICBITMAP1"));
FlexGridSizer3->Add(StaticBitmap1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
StaticText1 = new wxStaticText(Panel1, ID_STATICTEXT1, _("Note that the information displayed by the console are not\nnecessarily intended to be used directly by the user."), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1"));
FlexGridSizer3->Add(StaticText1, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
FlexGridSizer2->Add(FlexGridSizer3, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
consoleTextCtrl = new wxTextCtrl(Panel1, ID_TEXTCTRL1, wxEmptyString, wxDefaultPosition, wxSize(239,140), wxTE_AUTO_SCROLL|wxTE_MULTILINE|wxTE_RICH, wxDefaultValidator, _T("ID_TEXTCTRL1"));
FlexGridSizer2->Add(consoleTextCtrl, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
closeBt = new wxButton(Panel1, ID_BUTTON1, _("Close"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON1"));
FlexGridSizer2->Add(closeBt, 1, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
Panel1->SetSizer(FlexGridSizer2);
FlexGridSizer2->Fit(Panel1);
FlexGridSizer2->SetSizeHints(Panel1);
FlexGridSizer1->Add(Panel1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
SetSizer(FlexGridSizer1);
FlexGridSizer1->Fit(this);
FlexGridSizer1->SetSizeHints(this);
Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ConsoleFrame::OncloseBtClick);
Connect(wxID_ANY,wxEVT_CLOSE_WINDOW,(wxObjectEventFunction)&ConsoleFrame::OnClose);
//*)
redirector = new wxStreamToTextRedirector(consoleTextCtrl);
}
ConsoleFrame::~ConsoleFrame()
{
delete redirector;
//(*Destroy(ConsoleFrame)
//*)
}
void ConsoleFrame::OncloseBtClick(wxCommandEvent& event)
{
Show(false);
}
void ConsoleFrame::OnClose(wxCloseEvent& event)
{
Show(false);
}

View File

@@ -1,56 +0,0 @@
#ifndef CONSOLEFRAME_H
#define CONSOLEFRAME_H
#ifdef ___WXMSW___
#include <wx/msw/winundef.h>
#endif
//(*Headers(ConsoleFrame)
#include <wx/sizer.h>
#include <wx/stattext.h>
#include <wx/textctrl.h>
#include <wx/panel.h>
#include <wx/statbmp.h>
#include <wx/button.h>
#include <wx/frame.h>
//*)
class ConsoleFrame: public wxFrame
{
public:
ConsoleFrame(wxWindow* parent,wxWindowID id=wxID_ANY,const wxPoint& pos=wxDefaultPosition,const wxSize& size=wxDefaultSize);
virtual ~ConsoleFrame();
//(*Declarations(ConsoleFrame)
wxStaticBitmap* StaticBitmap1;
wxTextCtrl* consoleTextCtrl;
wxPanel* Panel1;
wxStaticText* StaticText1;
wxButton* closeBt;
//*)
protected:
//(*Identifiers(ConsoleFrame)
static const long ID_STATICBITMAP1;
static const long ID_STATICTEXT1;
static const long ID_TEXTCTRL1;
static const long ID_BUTTON1;
static const long ID_PANEL1;
//*)
private:
//(*Handlers(ConsoleFrame)
void OncloseBtClick(wxCommandEvent& event);
void OnClose(wxCloseEvent& event);
//*)
wxStreamToTextRedirector * redirector;
DECLARE_EVENT_TABLE()
};
#endif

View File

@@ -1,26 +0,0 @@
#include "ConsoleManager.h"
#ifdef ___WXMSW___
#include <wx/msw/winundef.h>
#endif
#include "ConsoleFrame.h"
#ifdef ___WXMSW___
#include <wx/msw/winundef.h>
#endif
ConsoleManager *ConsoleManager::_singleton = NULL;
ConsoleManager::ConsoleManager()
{
console = new ConsoleFrame(0);
}
ConsoleManager::~ConsoleManager()
{
console->Destroy();
}
void ConsoleManager::ShowConsole()
{
console->Show();
}

View File

@@ -1,53 +0,0 @@
/*
* GDevelop IDE
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
* This project is released under the GNU General Public License.
*/
#ifndef CONSOLEMANAGER_H
#define CONSOLEMANAGER_H
class ConsoleFrame;
/**
* \brief Manage GDevelop IDE console.
*
* Class managing the GD console, allowing to display it by a simple function call.
* Best when created at program start and killed when program exits.
*/
class ConsoleManager
{
public:
void ShowConsole();
static ConsoleManager *Get()
{
if ( !_singleton )
{
_singleton = new ConsoleManager;
}
return ( static_cast<ConsoleManager*>( _singleton ) );
}
static void DestroySingleton()
{
if ( 0 != _singleton )
{
delete _singleton;
_singleton = 0;
}
}
private:
ConsoleManager();
virtual ~ConsoleManager();
ConsoleFrame * console;
static ConsoleManager *_singleton;
};
#endif // CONSOLEMANAGER_H

View File

@@ -105,8 +105,7 @@ mainFrameWrapper(mainFrameWrapper_)
Connect(ID_AUINOTEBOOK1,wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED,(wxObjectEventFunction)&EditorScene::OnnotebookPageChanged);
Connect(ID_AUINOTEBOOK1,wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING,(wxObjectEventFunction)&EditorScene::OnnotebookPageChanging);
//*)
//Prepare pane manager
//Prepare pane manager
m_mgr.SetManagedWindow( this );
layoutEditorCanvas->SetParentAuiManager(&m_mgr);

View File

@@ -50,7 +50,6 @@
#include "UpdateChecker.h"
#include "MAJ.h"
#include "SplashScreen.h"
#include "ConsoleManager.h"
#include "BugReport.h"
#include "CompilationChecker.h"
#include "LogFileManager.h"
@@ -70,7 +69,7 @@ bool GDevelopIDEApp::OnInit()
{
//Disable assertions
wxDisableAsserts();
//Setting up working directory:
#ifdef LINUX
string tmp; //Make sure current working directory is executable directory.
@@ -275,16 +274,6 @@ bool GDevelopIDEApp::OnInit()
#endif
cout << "* Crash management ended" << endl;
//Creating the console Manager
/* Deactivated, as the compilation thread can output messages at any time, resulting in the wxTextCtrl of console frame to be updated at any time
which is dangerous ( GUI must be only updated from main thread )
#if defined(RELEASE) && defined(WINDOWS)
ConsoleManager * consoleManager;
consoleManager = ConsoleManager::Get();
cout << "ConsoleManager created" << endl;
#endif
*/
//Splash screen
wxBitmap bitmap;
bitmap.LoadFile( wxString("res/GD-Splashscreen.png"), wxBITMAP_TYPE_PNG );

View File

@@ -52,7 +52,6 @@
#include "EditorScene.h"
#include "CodeEditor.h"
#include "DnDFileEditor.h"
#include "ConsoleManager.h"
#include "ProjectManager.h"
#include "LogFileManager.h"
#include "BuildToolsPnl.h"
@@ -625,11 +624,6 @@ void MainFrame::OnClose( wxCloseEvent& event )
wxConfigBase::Get()->Write( _T( "/Workspace/Actuel" ), m_mgr.SavePerspective() );
//Close the editor close the program.
//We have to destroy the other frames.
ConsoleManager * consoleManager = ConsoleManager::Get();
consoleManager->DestroySingleton();
//Log the shutdown
LogFileManager::Get()->WriteToLogFile("GDevelop shutting down");
Destroy();

View File

@@ -7,13 +7,27 @@ SFML_LIB_DIR=../../ExtLibs/SFML/build-darwin/lib/
if [ $# -ge 2 ]; then
SFML_LIB_DIR=$2
fi
SFML_BASE_DIR=../../ExtLibs/SFML
if [ $# -ge 3 ]; then
SFML_BASE_DIR=$3
fi
if [ -d $SFML_LIB_DIR ]; then
echo "Copying SFML files to '$DESTINATION'..."
cp "$SFML_LIB_DIR"/*.dylib "$DESTINATION"/
else
echo "SFML lib files not found in '$SFML_LIB_DIR', skipping it..."
fi
if [ -d $SFML_BASE_DIR ]; then
echo "Copying SFML frameworks to '$DESTINATION/../Frameworks'..."
cp -r "$SFML_BASE_DIR"/extlibs/libs-osx/Frameworks "$DESTINATION"/../
else
echo "SFML base dir not found in '$SFML_BASE_DIR' (for frameworks), skipping it..."
fi
echo "Done."

2
docs

Submodule docs updated: ffc7bb92a3...aa57904752

0
scripts/ExtractTranslations.sh Normal file → Executable file
View File

0
scripts/GenerateAllDocs.sh Normal file → Executable file
View File

View File

@@ -1,57 +0,0 @@
@echo off > %TEMP%\#
cd ..
setLocal EnableDelayedExpansion
echo --Release procedure
echo.
echo --Is Runtime executable executing gam.egd and not another file?
choice /c:y
echo --Is res directory up to date?
choice /c:y
echo --Is locale directory up to date?
choice /c:y
echo --Generate installer and archive?
SET SKIPINSTALLERANDARCHIVE=0
choice /C:YN /T 10 /D Y
IF %ERRORLEVEL%==2 SET SKIPINSTALLERANDARCHIVE=1
IF %ERRORLEVEL%==1 SET SKIPINSTALLERANDARCHIVE=0
echo --Compiling Release target
cd Binaries/.build
ninja
cd ..\..
echo.
echo --Ensuring GDC++ headers and pch up-to-date for release
cd GDCpp/scripts
call CopyHeadersToGD.bat
cd ..\..
echo.
echo --Removing useless files...
del Binaries\Output\Release_Windows\Examples\*.gdg.autosave > NUL 2> NUL
del Binaries\Output\Release_Windows\log.txt > NUL 2> NUL
echo.
echo --Creating installer...
if exist Binaries\Releases\gd3xxxx.exe (del Binaries\Releases\gd3xxxx.exe)
IF NOT "%SKIPINSTALLERANDARCHIVE%"=="1" "C:\Program Files (x86)\Inno Setup 5\ISCC.exe" Binaries\Releases\InnoSetupInstallerScript.iss /Q
IF "%SKIPINSTALLERANDARCHIVE%"=="1" echo (Skipped)
echo.
echo --Creating archive...
if exist Binaries\Releases\gd3xxxx.zip (del Binaries\Releases\gd3xxxx.zip)
cd Binaries\Output\Release_Windows\
IF NOT "%SKIPINSTALLERANDARCHIVE%"=="1" "C:\Program Files (x86)\7-Zip\7z.exe" a ..\..\Releases\gd3xxxx.zip * > ..\..\..\scripts\logs\zipArchiveLog.txt
IF "%SKIPINSTALLERANDARCHIVE%"=="1" echo (Skipped)
cd ..\..\..
echo. >CON
echo Finished. Do not forget to : >CON
echo -Update news.txt >CON
echo -Update pad file >CON
pause >CON

View File

@@ -6,7 +6,7 @@ DIRECTORY="../Binaries/build"
fi
if [ -d "$DIRECTORY" ]; then
cd "$DIRECTORY"
if [ -f "build.ninha" ]; then
if [ -f "build.ninja" ]; then
ninja
fi
if [ -f "Makefile" ]; then