Sascha
From Guiliani
streamruntime:
- This is the CMakeLists.txt file for the StreamRuntime application
- ========== Minimum cmake version required ==========
CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
SET(PATH_COMMON "${CMAKE_CURRENT_SOURCE_DIR}/../CMake" CACHE PATH "CMake common files directory path")
SET(STREAMRUNTIME_APPNAME "StreamRuntime")
- sets into parent_scope if any (gets rid of additional variable for appname)
get_directory_property(hasParent PARENT_DIRECTORY) IF(hasParent)
SET(STREAMRUNTIME_APPNAME ${STREAMRUNTIME_APPNAME} PARENT_SCOPE)
ENDIF(hasParent)
- ========== Set project name and version number ==========
PROJECT(${STREAMRUNTIME_APPNAME} VERSION "3.0.0")
- ========== Setup configurations ==========
INCLUDE("${PATH_COMMON}/Common_settings.cmake")
- Configuration for SDK Package
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CPackPackages.cmake")
# Only add SDK settings if cmake sdk packages file exists SET(SDK_PACKAGE_GENERATOR CACHE BOOL "Generate Guiliani SDK Install Packages")
ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CPackPackages.cmake")
SET(STREAMRUNTIME_SDK_PROJECT 1 CACHE BOOL "Generate SDK project? (Activate this if you are using Guiliani as a library)")
IF(GSE_SDK_PROJECT)
SET(STREAMRUNTIME_SDK_PROJECT 1 CACHE BOOL "Generate SDK project? (Activate this if you are using Guiliani as a library)" FORCE)
ENDIF(GSE_SDK_PROJECT)
IF(STREAMRUNTIME_SDK_PROJECT)
SET(GSE_PROJECT 1) #means do not include Guiliani and eGaC project!
ENDIF(STREAMRUNTIME_SDK_PROJECT)
IF(NOT STREAMRUNTIME_SDK_PROJECT)
IF(CMAKE_CONFIGURATION_TYPES) LIST(APPEND CMAKE_CONFIGURATION_TYPES DebugFixpoint ReleaseFixpoint) LIST(REMOVE_DUPLICATES CMAKE_CONFIGURATION_TYPES) SET(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING "Reset the configurations to what we need" FORCE) ENDIF(CMAKE_CONFIGURATION_TYPES)
ENDIF(NOT STREAMRUNTIME_SDK_PROJECT)
- ========== Include correct platform file ==========
INCLUDE("${PATH_COMMON}/Platform.cmake")
- ========== Output some information ==========
INCLUDE("${PATH_COMMON}/Build_information.cmake")
- ========== Set application specific includes ==========
INCLUDE_DIRECTORIES(BEFORE
"${PROJECT_SOURCE_DIR}/Include" "${PROJECT_SOURCE_DIR}/Include/GUIConfig" "${PROJECT_SOURCE_DIR}/Include/CustomExtension" "${PROJECT_SOURCE_DIR}/Include/GUIConfigCustom" "${PROJECT_SOURCE_DIR}/Common/Include"
)
IF(NOT STREAMRUNTIME_SDK_PROJECT)
# ========== Set include directories ========== INCLUDE("${PATH_COMMON}/Include_directories.cmake") SET(GSE_GUICONFIG_CPP "${PATH_GUILIANI}/Share/GUIConfig.cpp")
ELSE(NOT STREAMRUNTIME_SDK_PROJECT)
INCLUDE_DIRECTORIES( "${PROJECT_SOURCE_DIR}/../eGaC/Include/eC" "${PROJECT_SOURCE_DIR}/../eGaC/Include/eGML" "${PROJECT_SOURCE_DIR}/../Guiliani/Include/Core" "${PROJECT_SOURCE_DIR}/../Guiliani/Include/GUIConfig" "${PROJECT_SOURCE_DIR}/../Guiliani/Include/ImageDecoder" "${PROJECT_SOURCE_DIR}/../Guiliani/Include/Platform/eGML" "${PROJECT_SOURCE_DIR}/../Guiliani/Include/Platform/general" "${PROJECT_SOURCE_DIR}/../Guiliani/Include/Platform/GL" ) SET(GSE_GUICONFIG_CPP "${PROJECT_SOURCE_DIR}/../GSE/Share/GUIConfig.cpp")
ENDIF(NOT STREAMRUNTIME_SDK_PROJECT)
- ========== StreamRuntime Source files ==========
FILE(GLOB SR_SOURCE_CPP
"${PROJECT_SOURCE_DIR}/Source/*.cpp" "${PROJECT_SOURCE_DIR}/Common/Source/*.cpp")
SOURCE_GROUP("Source Files" FILES ${SR_SOURCE_CPP})
FILE(GLOB SR_SOURCE_H
"${PROJECT_SOURCE_DIR}/Include/*.h" "${PROJECT_SOURCE_DIR}/Common/Include/*.h")
SOURCE_GROUP("Header Files" FILES ${SR_SOURCE_H})
FILE(GLOB SR_GUICONFIG_SOURCE_H "${PROJECT_SOURCE_DIR}/Include/GUIConfig/*.h") SOURCE_GROUP("Header Files\\GUIConfig" FILES ${SR_GUICONFIG_SOURCE_H})
- ========== GSE Source files ==========
SOURCE_GROUP("GUIConfig" FILES ${GSE_GUICONFIG_CPP})
FILE(GLOB GSE_CUSTOM_SOURCE_CPP "${PROJECT_SOURCE_DIR}/Source/CustomExtension/*.cpp") SOURCE_GROUP("Source Files\\Custom Extension" FILES ${GSE_CUSTOM_SOURCE_CPP})
FILE(GLOB GSE_CUSTOM_SOURCE_H "${PROJECT_SOURCE_DIR}/Include/CustomExtension/*.h") SOURCE_GROUP("Header Files\\Custom Extension" FILES ${GSE_CUSTOM_SOURCE_H})
FILE(GLOB GSE_CUSTOM_GUICONFIG_SOURCE_H "${PROJECT_SOURCE_DIR}/Include/GUIConfigCustom/*.h") SOURCE_GROUP("Header Files\\Custom Resource IDs" FILES ${GSE_CUSTOM_GUICONFIG_SOURCE_H})
- ========== Create complete list of files for GSE binary ==========
SET(SR_SOURCES_LIST
${SR_SOURCE_CPP} ${SR_SOURCE_H} ${SR_GUICONFIG_SOURCE_H} ${GSE_GUICONFIG_CPP} ${GSE_CUSTOM_SOURCE_CPP} ${GSE_CUSTOM_SOURCE_H} ${GSE_CUSTOM_GUICONFIG_SOURCE_H} ${PLATFORM_FILES}
)
- ========== Build StreamRuntime binary ==========
- Don't build StreamRuntime as MACOSX_BUNDLE.
IF(GSE_MAKE_BUNDLE)
LIST(REMOVE_ITEM ADD_EXECUTABLE_PARAMETERS MACOSX_BUNDLE)
ENDIF(GSE_MAKE_BUNDLE) ADD_EXECUTABLE(${PROJECT_NAME} ${ADD_EXECUTABLE_PARAMETERS} ${SR_SOURCES_LIST})
IF(NOT GSE_PROJECT)
# ========== Add eGaC ========== IF(EXISTS "${PATH_EGAC}/CMakeLists.txt") ADD_SUBDIRECTORY("${PATH_EGAC}" ./eGaC) ELSE(EXISTS "${PATH_EGAC}/CMakeLists.txt") MESSAGE(FATAL_ERROR "Path not set or wrong to eGaC directory.") ENDIF(EXISTS "${PATH_EGAC}/CMakeLists.txt")
# ========== Add Guiliani ========== IF(EXISTS "${PATH_GUILIANI}/CMakeLists.txt") ADD_SUBDIRECTORY("${PATH_GUILIANI}" ./Guiliani) ELSE(EXISTS "${PATH_GUILIANI}/CMakeLists.txt") MESSAGE(FATAL_ERROR "Path not set or wrong to Guiliani directory.") ENDIF(EXISTS "${PATH_GUILIANI}/CMakeLists.txt")
ENDIF(NOT GSE_PROJECT)
- ========== Link the executable to the needed libraries ==========
TARGET_LINK_LIBRARIES(${PROJECT_NAME}
Guiliani eGaC ${PLATFORM_LIBS}
)
- ========== Set output directories ==========
IF(MSVC_IDE)
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG "${PROJECT_SOURCE_DIR}/bin/win/pc") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE "${PROJECT_SOURCE_DIR}/bin/win/pc") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUGFIXPOINT "${PROJECT_SOURCE_DIR}/bin/win/pc") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASEFIXPOINT "${PROJECT_SOURCE_DIR}/bin/win/pc") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUGEVALUATION "${PROJECT_SOURCE_DIR}/bin/win/pc") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASEEVALUATION "${PROJECT_SOURCE_DIR}/bin/win/pc") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_NAME "${PROJECT_NAME}")
ENDIF(MSVC_IDE)
IF(APPLE AND NOT CMAKE_PLATFORM_NAME STREQUAL "iphonesimulator" AND NOT CMAKE_PLATFORM_NAME STREQUAL "iphoneos")
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG "${PROJECT_SOURCE_DIR}/bin/OSX") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE "${PROJECT_SOURCE_DIR}/bin/OSX") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUGFIXPOINT "${PROJECT_SOURCE_DIR}/bin/OSX") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASEFIXPOINT "${PROJECT_SOURCE_DIR}/bin/OSX") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUGEVALUATION "${PROJECT_SOURCE_DIR}/bin/OSX") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASEEVALUATION "${PROJECT_SOURCE_DIR}/bin/OSX") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_NAME "${PROJECT_NAME}")
ENDIF(APPLE AND NOT CMAKE_PLATFORM_NAME STREQUAL "iphonesimulator" AND NOT CMAKE_PLATFORM_NAME STREQUAL "iphoneos")
- ========== Set preprocessor defines ==========
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS "${PREPROCESSOR_DEFINES};STREAMRUNTIME_APPLICATION")
IF(NOT GSE_PROJECT)
SET_TARGET_PROPERTIES(Guiliani PROPERTIES COMPILE_DEFINITIONS_DEBUGEVALUATION "GUILIANI_EVALUATION") SET_TARGET_PROPERTIES(Guiliani PROPERTIES COMPILE_DEFINITIONS_RELEASEEVALUATION "GUILIANI_EVALUATION") IF(WIN32) SET_TARGET_PROPERTIES(eGaC PROPERTIES COMPILE_DEFINITIONS_DEBUGEVALUATION "eGML_EVALLIB") SET_TARGET_PROPERTIES(eGaC PROPERTIES COMPILE_DEFINITIONS_RELEASEEVALUATION "eGML_EVALLIB") ELSE(WIN32) SET_TARGET_PROPERTIES(eGaC PROPERTIES COMPILE_DEFINITIONS_DEBUGEVALUATION "eGML_EVALLIB2") SET_TARGET_PROPERTIES(eGaC PROPERTIES COMPILE_DEFINITIONS_RELEASEEVALUATION "eGML_EVALLIB2") ENDIF(WIN32)
ENDIF(NOT GSE_PROJECT)
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_DEBUGFIXPOINT "eC_FIXPOINT") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_RELEASEFIXPOINT "eC_FIXPOINT")
- ========== Add resource files to bundle ==========
IF(APPLE)
# Include common Apple bundle settings INCLUDE("${PATH_COMMON}/Common_Apple_settings.cmake")
IF(CMAKE_PLATFORM_NAME STREQUAL "iphonesimulator" OR CMAKE_PLATFORM_NAME STREQUAL "iphoneos") # Variable to the resources directory SET(STREAMRUNTIME_RESOURCES_DIR "${PROJECT_SOURCE_DIR}/../GSE/Examples/EditorDemo/480x640/temp" CACHE PATH "Path to the GUIResources directory which shall be copied into the bundle.") IF(NOT IS_DIRECTORY ${STREAMRUNTIME_RESOURCES_DIR}) MESSAGE(SEND_ERROR "Please choose an existing resource directory! Set STREAMRUNTIME_RESOURCES_DIR properly.") ENDIF(NOT IS_DIRECTORY ${STREAMRUNTIME_RESOURCES_DIR}) # Code signing SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer") # - Copy the resources into the bundle. ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} POST_BUILD COMMAND rm -rf ${APPLICATION_NAME}/GUIResources COMMAND mkdir ${APPLICATION_NAME}/GUIResources COMMAND cp -r ${STREAMRUNTIME_RESOURCES_DIR}/* ${APPLICATION_NAME}/GUIResources/ ) ENDIF(CMAKE_PLATFORM_NAME STREQUAL "iphonesimulator" OR CMAKE_PLATFORM_NAME STREQUAL "iphoneos")
ENDIF(APPLE)
- ========== Post-Build step: Create bin file ==========
IF("${CMAKE_PLATFORM_NAME}" STREQUAL "rsk_rza1_FreeRTOS")
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND "${CMAKE_OBJCOPY}" -O binary $<TARGET_FILE:GuilianiDemo> $<TARGET_FILE_DIR:GuilianiDemo>/GuilianiDemo.bin
)
ENDIF("${CMAKE_PLATFORM_NAME}" STREQUAL "rsk_rza1_FreeRTOS")
IF("${CMAKE_PLATFORM_NAME}" STREQUAL "rza1_mbed")
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND "${CMAKE_OBJCOPY}" -O binary $<TARGET_FILE:GuilianiDemo> $<TARGET_FILE_DIR:GuilianiDemo>/GuilianiDemo.bin
)
ENDIF("${CMAKE_PLATFORM_NAME}" STREQUAL "rza1_mbed") IF(SDK_PACKAGE_GENERATOR AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CPackPackages.cmake")
INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CPackPackages.cmake)
ENDIF(SDK_PACKAGE_GENERATOR AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CPackPackages.cmake")
gse:
- This is the CMakeLists.txt file for the GSE
- ========== Set project name and version number ==========
PROJECT(GSE
VERSION "2.2.0")
- ========== Minimum cmake version required ==========
CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
SET(CMAKE_CXX_STANDARD 11)
SET(PATH_COMMON "${CMAKE_CURRENT_SOURCE_DIR}/../CMake" CACHE PATH "CMake common files directory path")
- ========== Setup configurations ==========
INCLUDE("${PATH_COMMON}/Common_settings.cmake")
- Configuration for SDK Installer
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CPackConfiguration.cmake")
# Only add SDK settings if cmake installer files exists SET(SDK_PACKAGE_GENERATOR CACHE BOOL "Generate Guiliani SDK Install Packages")
ELSE(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CPackConfiguration.cmake")
MESSAGE(STATUS "GSE SDK Project.") SET(GSE_SDK_PROJECT 1) # Variable for activating SKD build
ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CPackConfiguration.cmake")
- Activate OGL per default
SET(FORCE_ADD_OGL_PLATFORM 1)
- Activate RTTI
SET(FORCE_USE_RTTI 1)
- ========== Include correct platform file ==========
INCLUDE("${PATH_COMMON}/Platform.cmake")
- ========== Output some information ==========
INCLUDE("${PATH_COMMON}/Build_information.cmake")
- StreamRuntime root path to find the custom extension
SET(GSE_ROOT_PATH_STREAMRUNTIME "${PROJECT_SOURCE_DIR}/../StreamRuntime" CACHE PATH "StreamRuntime root path") SET(GSE_ROOT_PATH_RESOURCECOMPILER "${PROJECT_SOURCE_DIR}/GUIResourceCompiler" CACHE PATH "ResourceCompiler root path")
IF(SDK_PACKAGE_GENERATOR OR GSE_SDK_PROJECT)
IF(APPLE) SET(PATH_GSE "../Resources" CACHE PATH "This path has to point to the GSE root directory." FORCE ) ELSE(APPLE) SET(PATH_GSE "" CACHE PATH "This path has to point to the GSE root directory. This path is set empty, so the variable GSE_PATH is used." FORCE ) ENDIF(APPLE) SET(SDK_PACKAGE_GENERATOR_ADDITIONAL_PACKAGE "" CACHE PATH "Path to additonal CPackPackages.cmake")
ELSE(SDK_PACKAGE_GENERATOR OR GSE_SDK_PROJECT)
SET(PATH_GSE "${PROJECT_SOURCE_DIR}" CACHE PATH "This path has to point to the GSE root directory.")
ENDIF(SDK_PACKAGE_GENERATOR OR GSE_SDK_PROJECT)
LIST(APPEND PREPROCESSOR_DEFINES "PATH_GSE=\"${PATH_GSE}\"")
- ========== Set application specific includes ==========
INCLUDE_DIRECTORIES(
"${PROJECT_SOURCE_DIR}/Include" "${PROJECT_SOURCE_DIR}/Include/Behaviour" "${PROJECT_SOURCE_DIR}/Include/Command" "${PROJECT_SOURCE_DIR}/Include/Control" "${PROJECT_SOURCE_DIR}/Include/Dialog" "${PROJECT_SOURCE_DIR}/Include/GUIConfig" "${PROJECT_SOURCE_DIR}/Include/Undo" "${GSE_ROOT_PATH_STREAMRUNTIME}/Include/CustomExtension" "${GSE_ROOT_PATH_STREAMRUNTIME}/Include/GUIConfigCustom"
)
IF(NOT GSE_SDK_PROJECT) #Default case to build GSE
# ========== Set include directories ========== INCLUDE("${PATH_COMMON}/Include_directories.cmake") INCLUDE_DIRECTORIES( "${GSE_ROOT_PATH_RESOURCECOMPILER}/Include" )
# ========== GSElib Source files ========== # SOURCE_GROUP creates the "folder-structure" in VS FILE(GLOB GSELIB_SOURCE_CPP "${PROJECT_SOURCE_DIR}/Source/*.cpp") LIST(APPEND GSELIB_SOURCE_CPP "${PROJECT_SOURCE_DIR}/Source/md5.cpp") FILE(GLOB GSELIB_BHVR_SOURCE_CPP "${PROJECT_SOURCE_DIR}/Source/Behaviour/*.cpp") FILE(GLOB GSELIB_CMD_SOURCE_CPP "${PROJECT_SOURCE_DIR}/Source/Command/*.cpp") FILE(GLOB GSELIB_CTRL_SOURCE_CPP "${PROJECT_SOURCE_DIR}/Source/Control/*.cpp") FILE(GLOB GSELIB_DIALOG_SOURCE_CPP "${PROJECT_SOURCE_DIR}/Source/Dialog/*.cpp") FILE(GLOB GSELIB_UNDO_SOURCE_CPP "${PROJECT_SOURCE_DIR}/Source/Undo/*.cpp") FILE(GLOB GSELIB_CUSTOM_TEMPLATES "${PROJECT_SOURCE_DIR}/Resources/CustomTemplates/*.tpl") SOURCE_GROUP("Source Files" FILES ${GSELIB_SOURCE_CPP}) SOURCE_GROUP("Source Files\\Behaviour" FILES ${GSELIB_BHVR_SOURCE_CPP}) SOURCE_GROUP("Source Files\\Command" FILES ${GSELIB_CMD_SOURCE_CPP}) SOURCE_GROUP("Source Files\\Control" FILES ${GSELIB_CTRL_SOURCE_CPP}) SOURCE_GROUP("Source Files\\Dialog" FILES ${GSELIB_DIALOG_SOURCE_CPP}) SOURCE_GROUP("Source Files\\Undo" FILES ${GSELIB_UNDO_SOURCE_CPP}) SOURCE_GROUP("Custom Templates" FILES ${GSELIB_CUSTOM_TEMPLATES})
FILE(GLOB GSELIB_SOURCE_H "${PROJECT_SOURCE_DIR}/Include/*.h") FILE(GLOB GSELIB_BHVR_SOURCE_H "${PROJECT_SOURCE_DIR}/Include/Behaviour/*.h") FILE(GLOB GSELIB_CMD_SOURCE_H "${PROJECT_SOURCE_DIR}/Include/Command/*.h") FILE(GLOB GSELIB_CTRL_SOURCE_H "${PROJECT_SOURCE_DIR}/Include/Control/*.h") FILE(GLOB GSELIB_DIALOG_SOURCE_H "${PROJECT_SOURCE_DIR}/Include/Dialog/*.h") FILE(GLOB GSELIB_UNDO_SOURCE_H "${PROJECT_SOURCE_DIR}/Include/Undo/*.h") FILE(GLOB GSELIB_GUICONFIG_SOURCE_H "${PROJECT_SOURCE_DIR}/Include/GUIConfig/*.h") SOURCE_GROUP("Header Files" FILES ${GSELIB_SOURCE_H}) SOURCE_GROUP("Header Files\\Behaviour" FILES ${GSELIB_BHVR_SOURCE_H}) SOURCE_GROUP("Header Files\\Command" FILES ${GSELIB_CMD_SOURCE_H}) SOURCE_GROUP("Header Files\\Control" FILES ${GSELIB_CTRL_SOURCE_H}) SOURCE_GROUP("Header Files\\Dialog" FILES ${GSELIB_DIALOG_SOURCE_H}) SOURCE_GROUP("Header Files\\Undo" FILES ${GSELIB_UNDO_SOURCE_H}) SOURCE_GROUP("Header Files\\GUIConfig" FILES ${GSELIB_GUICONFIG_SOURCE_H}) FILE(GLOB GSELIB_LANGUAGE_FILES "${PROJECT_SOURCE_DIR}/Resources/LanguageFiles/*.lng") SOURCE_GROUP("Language Files" FILES ${GSELIB_LANGUAGE_FILES})
# ========== Create complete list of files for GSElib ========== SET(GSELIB_SOURCES_LIST ${GSELIB_SOURCE_CPP} ${GSELIB_BHVR_SOURCE_CPP} ${GSELIB_CMD_SOURCE_CPP} ${GSELIB_CTRL_SOURCE_CPP} ${GSELIB_DIALOG_SOURCE_CPP} ${GSELIB_UNDO_SOURCE_CPP} ${GSELIB_CUSTOM_TEMPLATES} ${GSELIB_SOURCE_H} ${GSELIB_BHVR_SOURCE_H} ${GSELIB_CMD_SOURCE_H} ${GSELIB_CTRL_SOURCE_H} ${GSELIB_DIALOG_SOURCE_H} ${GSELIB_UNDO_SOURCE_H} ${GSELIB_GUICONFIG_SOURCE_H} ${GSELIB_LANGUAGE_FILES} ${PLATFORM_FILES_GSELIB} ) SET(GSE_GUICONFIG_CPP "${PATH_GUILIANI}/Share/GUIConfig.cpp") # GUIConfig.cpp from Guiliani path
ELSE(NOT GSE_SDK_PROJECT) #SDK uses the directories inside the GSE structure
INCLUDE_DIRECTORIES( "${PROJECT_SOURCE_DIR}/../eGaC/Include/eC" "${PROJECT_SOURCE_DIR}/../eGaC/Include/eDBG" "${PROJECT_SOURCE_DIR}/../eGaC/Include/eGML" "${PROJECT_SOURCE_DIR}/../Guiliani/Include/Core" "${PROJECT_SOURCE_DIR}/../Guiliani/Include/GUIConfig" "${PROJECT_SOURCE_DIR}/../Guiliani/Include/ImageDecoder" "${PROJECT_SOURCE_DIR}/../Guiliani/Include/Platform/eGML" "${PROJECT_SOURCE_DIR}/../Guiliani/Include/Platform/general" "${PROJECT_SOURCE_DIR}/../Guiliani/Include/Platform/GL" ) INCLUDE("${PATH_COMMON}/Include_directories.cmake") SET(GSE_GUICONFIG_CPP "${PROJECT_SOURCE_DIR}/Share/GUIConfig.cpp") # GUIConfig.cpp from inside GSE
ENDIF(NOT GSE_SDK_PROJECT)
- ========== GSE Source files ==========
- SOURCE_GROUP creates the "folder-structure" in VS
SOURCE_GROUP("GUIConfig" FILES ${GSE_GUICONFIG_CPP})
FILE(GLOB GSE_CUSTOM_SOURCE_CPP "${GSE_ROOT_PATH_STREAMRUNTIME}/Source/CustomExtension/*.cpp") SOURCE_GROUP("Source Files\\Custom Extension" FILES ${GSE_CUSTOM_SOURCE_CPP})
FILE(GLOB GSE_CUSTOM_SOURCE_H "${GSE_ROOT_PATH_STREAMRUNTIME}/Include/CustomExtension/*.h") FILE(GLOB GSE_CUSTOM_GUICONFIG_SOURCE_H "${GSE_ROOT_PATH_STREAMRUNTIME}/Include/GUIConfigCustom/*.h") SOURCE_GROUP("Header Files\\Custom Extension" FILES ${GSE_CUSTOM_SOURCE_H}) SOURCE_GROUP("Header Files\\Custom Resource IDs" FILES ${GSE_CUSTOM_GUICONFIG_SOURCE_H})
FILE(GLOB GSE_PLATFORM_GENERAL_CPP "${PROJECT_SOURCE_DIR}/Source/Platform/general/*.cpp") SOURCE_GROUP("Source Files\\Platform\\General" FILES ${GSE_PLATFORM_GENERAL_CPP})
- ========== Create complete list of files for GSE binary ==========
SET(GSE_SOURCES_LIST
${GSE_GUICONFIG_CPP} ${GSE_CUSTOM_SOURCE_CPP} ${GSE_CUSTOM_SOURCE_H} ${GSE_CUSTOM_GUICONFIG_SOURCE_H} ${GSE_PLATFORM_GENERAL_CPP} ${RESOURCE_FILE}
)
SET(GSE_PROJECT 1) #this variable is used in StreamRuntime and ResourceCompiler to avoid adding Guiliani and eGaC project twice.
- ========== Build GSE binary ==========
IF(GSE_MAKE_BUNDLE)
SET(ADD_EXECUTABLE_PARAMETERS "MACOSX_BUNDLE")
ENDIF(GSE_MAKE_BUNDLE)
ADD_EXECUTABLE(${PROJECT_NAME} ${ADD_EXECUTABLE_PARAMETERS} ${GSE_SOURCES_LIST})
- ========== Add StreamRuntime ==========
ADD_SUBDIRECTORY("${GSE_ROOT_PATH_STREAMRUNTIME}" ./StreamRuntime)
IF(NOT GSE_SDK_PROJECT) #if no SDK we add to solution: GSElib, Guiliani, GUIResourceCompiler and link against these projects.
# ========== Add eGaC ========== IF(EXISTS "${PATH_EGAC}/CMakeLists.txt") ADD_SUBDIRECTORY("${PATH_EGAC}" ./eGaC) ELSE(EXISTS "${PATH_EGAC}/CMakeLists.txt") MESSAGE(FATAL_ERROR "Path not set or wrong to eGaC directory.") ENDIF(EXISTS "${PATH_EGAC}/CMakeLists.txt")
# ========== Add Guiliani ========== IF(EXISTS "${PATH_GUILIANI}/CMakeLists.txt") ADD_SUBDIRECTORY("${PATH_GUILIANI}" ./Guiliani) ELSE(EXISTS "${PATH_GUILIANI}/CMakeLists.txt") MESSAGE(FATAL_ERROR "Path not set or wrong to Guiliani directory.") ENDIF(EXISTS "${PATH_GUILIANI}/CMakeLists.txt")
# ========== Add GUIResourceCompiler ========== IF(EXISTS "${GSE_ROOT_PATH_RESOURCECOMPILER}/CMakeLists.txt") ADD_SUBDIRECTORY("${GSE_ROOT_PATH_RESOURCECOMPILER}" ./GUIResourceCompiler) ELSE(EXISTS "${GSE_ROOT_PATH_RESOURCECOMPILER}/CMakeLists.txt") MESSAGE(FATAL_ERROR "Path not set or wrong to GUIResourceCompiler directory.") ENDIF(EXISTS "${GSE_ROOT_PATH_RESOURCECOMPILER}/CMakeLists.txt")
# ========== Build GSE library ========== ADD_LIBRARY(GSElib STATIC ${GSELIB_SOURCES_LIST})
ENDIF(NOT GSE_SDK_PROJECT)
- ========== Link the executable to the needed libraries ==========
TARGET_LINK_LIBRARIES(${PROJECT_NAME}
GSElib GUIResourceCompilerLib Guiliani eGaC ${PLATFORM_LIBS}
)
- ========== StreamRuntime must be build prior to GSE ==========
ADD_DEPENDENCIES(${PROJECT_NAME} ${STREAMRUNTIME_APPNAME})
- ========== Set output directories ==========
SET(RESOURCE_DIR "${PROJECT_SOURCE_DIR}/Resources")
IF(MSVC_IDE)
SET(BINARY_DIR "${PROJECT_SOURCE_DIR}/Binary/win/pc") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${BINARY_DIR}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${BINARY_DIR}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUGEVALUATION ${BINARY_DIR}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASEEVALUATION ${BINARY_DIR}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_NAME "GSE")
SET_TARGET_PROPERTIES(${STREAMRUNTIME_APPNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${RESOURCE_DIR}) SET_TARGET_PROPERTIES(${STREAMRUNTIME_APPNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${RESOURCE_DIR}) SET_TARGET_PROPERTIES(${STREAMRUNTIME_APPNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUGEVALUATION ${RESOURCE_DIR}) SET_TARGET_PROPERTIES(${STREAMRUNTIME_APPNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASEEVALUATION ${RESOURCE_DIR})
ENDIF(MSVC_IDE)
IF(APPLE AND NOT GSE_MAKE_BUNDLE)
SET(BINARY_DIR "${PROJECT_SOURCE_DIR}/../../bin/OSX") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${BINARY_DIR}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${BINARY_DIR}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUGEVALUATION ${BINARY_DIR}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASEEVALUATION ${BINARY_DIR}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_NAME "GSE")
SET_TARGET_PROPERTIES(${STREAMRUNTIME_APPNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${RESOURCE_DIR}) SET_TARGET_PROPERTIES(${STREAMRUNTIME_APPNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${RESOURCE_DIR}) SET_TARGET_PROPERTIES(${STREAMRUNTIME_APPNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUGEVALUATION ${RESOURCE_DIR}) SET_TARGET_PROPERTIES(${STREAMRUNTIME_APPNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASEEVALUATION ${RESOURCE_DIR})
ENDIF(APPLE AND NOT GSE_MAKE_BUNDLE)
SET_TARGET_PROPERTIES(${STREAMRUNTIME_APPNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${RESOURCE_DIR}) SET_TARGET_PROPERTIES(${STREAMRUNTIME_APPNAME} PROPERTIES RUNTIME_OUTPUT_NAME "${STREAMRUNTIME_APPNAME}")
- ========== Set preprocessor defines ==========
SET(PREPROCESSOR_DEFINES "${PREPROCESSOR_DEFINES};GSE_STREAMRUNTIME_BINARY_NAME=\"${STREAMRUNTIME_APPNAME}\";GSE_STREAMRUNTIME_ROOT_DIR=\"${GSE_ROOT_PATH_STREAMRUNTIME}\"")
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS "${PREPROCESSOR_DEFINES}")
IF(NOT GSE_SDK_PROJECT) # Target GSElib doesn't exists in SDK build
SET_TARGET_PROPERTIES(GSElib PROPERTIES COMPILE_DEFINITIONS "${PREPROCESSOR_DEFINES};GSE_GSELIB") SET_TARGET_PROPERTIES(GSElib PROPERTIES COMPILE_DEFINITIONS_DEBUGEVALUATION "GSE_EVALUATION") SET_TARGET_PROPERTIES(GSElib PROPERTIES COMPILE_DEFINITIONS_RELEASEEVALUATION "GSE_EVALUATION") SET_TARGET_PROPERTIES(Guiliani PROPERTIES COMPILE_DEFINITIONS_DEBUGEVALUATION "GUILIANI_EVALUATION") SET_TARGET_PROPERTIES(Guiliani PROPERTIES COMPILE_DEFINITIONS_RELEASEEVALUATION "GUILIANI_EVALUATION") IF(WIN32) SET_TARGET_PROPERTIES(eGaC PROPERTIES COMPILE_DEFINITIONS_DEBUGEVALUATION "eGML_EVALLIB") SET_TARGET_PROPERTIES(eGaC PROPERTIES COMPILE_DEFINITIONS_RELEASEEVALUATION "eGML_EVALLIB") ELSE(WIN32) SET_TARGET_PROPERTIES(eGaC PROPERTIES COMPILE_DEFINITIONS_DEBUGEVALUATION "eGML_EVALLIB2") SET_TARGET_PROPERTIES(eGaC PROPERTIES COMPILE_DEFINITIONS_RELEASEEVALUATION "eGML_EVALLIB2") ENDIF(WIN32)
ENDIF(NOT GSE_SDK_PROJECT)
- ========== Create MacOSX application bundle ==========
IF(GSE_MAKE_BUNDLE)
# Include common Apple bundle settings INCLUDE("${PATH_COMMON}/Common_Apple_settings.cmake")
IF(APPLE) IF(NOT CMAKE_PLATFORM_NAME STREQUAL "iphonesimulator" AND NOT CMAKE_PLATFORM_NAME STREQUAL "iphoneos") # Variable to the resources directory SET(RESOURCES_DIR ${PROJECT_SOURCE_DIR}) IF(NOT GSE_SDK_PROJECT) IF(NOT GSE_MAKE_BUNDLE_EVAL)
# - Remove old content. # - Run the mkdist.sh script to generate customer GSE version. # - Copy the icon file into the bundle. ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} POST_BUILD COMMAND rm -rf ${APPLICATION_NAME}/Contents/Resources COMMAND ${RESOURCES_DIR}/tools/mkdist.sh Resources ${APPLICATION_NAME}/Contents ${RESOURCES_DIR}/../ ${RESOURCES_DIR}/../Libs OSX COMMAND cp ${RESOURCES_DIR}/Resources/GSE.icns ${APPLICATION_NAME}/Contents/Resources ) ELSE(NOT GSE_MAKE_BUNDLE_EVAL) # - Remove old content. # - Run the mkdist.sh script to generate customer GSE version. # - Copy the icon file into the bundle. ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} POST_BUILD COMMAND rm -rf ${APPLICATION_NAME}/Contents/Resources COMMAND ${RESOURCES_DIR}/tools/mkdist.sh Resources ${APPLICATION_NAME}/Contents ${RESOURCES_DIR}/../ ${RESOURCES_DIR}/../Libs OSX EVAL COMMAND cp ${RESOURCES_DIR}/Resources/GSE.icns ${APPLICATION_NAME}/Contents/Resources )
ENDIF(NOT GSE_MAKE_BUNDLE_EVAL) ELSE(NOT GSE_SDK_PROJECT) # - Remove old content. # - Copy the resources into the bundle. # - Copy the StreamRuntime binary into the bundle. # - Copy the icon file into the bundle. ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} POST_BUILD COMMAND rm -rf ${APPLICATION_NAME}/Contents/Resources COMMAND cp -r ${RESOURCES_DIR} ${APPLICATION_NAME}/Contents/Resources COMMAND cp ${RESOURCES_DIR}/StreamRuntime/bin/OSX/StreamRuntime ${APPLICATION_NAME}/Contents/Resources/Resources COMMAND cp ${RESOURCES_DIR}/Resources/GSE.icns ${APPLICATION_NAME}/Contents/Resources )
ENDIF(NOT GSE_SDK_PROJECT) ENDIF(NOT CMAKE_PLATFORM_NAME STREQUAL "iphonesimulator" AND NOT CMAKE_PLATFORM_NAME STREQUAL "iphoneos") ENDIF(APPLE)
ENDIF(GSE_MAKE_BUNDLE)
IF(SDK_PACKAGE_GENERATOR)
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../CPackPackages.cmake") INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/../CPackPackages.cmake) ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../CPackPackages.cmake") IF(EXISTS "${PATH_COMMON}/CPackPackages.cmake") INCLUDE (${PATH_COMMON}/CPackPackages.cmake) ENDIF(EXISTS "${PATH_COMMON}/CPackPackages.cmake") IF(EXISTS "${PATH_LIBS}/CPackPackages.cmake") INCLUDE (${PATH_LIBS}/CPackPackages.cmake) ENDIF(EXISTS "${PATH_LIBS}/CPackPackages.cmake") INCLUDE(CPackPackages.cmake) INCLUDE(CPackConfiguration.cmake) # Dirty but currently neccessary to add an additonal project IF(EXISTS "${SDK_PACKAGE_GENERATOR_ADDITIONAL_PACKAGE}/CPackPackages.cmake") SET(PROJECT_SOURCE_DIR ${SDK_PACKAGE_GENERATOR_ADDITIONAL_PACKAGE}) INCLUDE(${SDK_PACKAGE_GENERATOR_ADDITIONAL_PACKAGE}/CPackPackages.cmake) ENDIF(EXISTS "${SDK_PACKAGE_GENERATOR_ADDITIONAL_PACKAGE}/CPackPackages.cmake")
ENDIF(SDK_PACKAGE_GENERATOR)