--- a/CMakeLists.txt Thu Oct 07 13:58:22 2010 +0100
+++ b/CMakeLists.txt Thu Oct 07 18:44:04 2010 +0100
@@ -3,7 +3,7 @@
# This component and the accompanying materials are made available
# under the terms of "Eclipse Public License v1.0"
# which accompanies this distribution, and is available
-# at the URL "http:#www.eclipse.org/legal/epl-v10.html".
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
#
# Initial Contributors:
# Nokia Corporation - initial contribution.
@@ -11,11 +11,89 @@
# Contributors:
#
# Description:
-# Temporary CMake meta build file for hostthreadadapter and holdingarea
+# CMake meta build file for the host components
cmake_minimum_required (VERSION 2.8)
-set(GLOBAL_LIB_DIR ${PROJECT_SOURCE_DIR}/holdingarea/lib)
+set(CMAKE_CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo" CACHE STRING "Config types" FORCE)
+
+project(HostGraphics)
+
+set(LLVM_INSTALL_DIR ${PROJECT_SOURCE_DIR}/holdingarea/llvm)
+include(FindLLVM.cmake)
+
+add_definitions(-DUSE_FULL_EGL)
+
+if(CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo)
+ message("*** Defining profiling flags")
+ add_definitions(-DSF_PROFILE)
+endif(CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo)
+
+# Some LLVM-definitions:
+message("*** LLVM binaries ***")
+if(WIN32)
+ set(LLVM_CC "${LLVM_INSTALL_DIR}/llvm-gcc4.2-2.7-x86-mingw32/bin/llvm-g++")
+ set(LLVM_LINK "${LLVM_INSTALL_DIR}/llvm-2.7/bin/llvm-link")
+ set(LLVM_DIS "${LLVM_INSTALL_DIR}/llvm-2.7/bin/llvm-dis")
+else(WIN32)
+ set(LLVM_CC "llvm-g++")
+ set(LLVM_LINK "llvm-link")
+ set(LLVM_DIS "llvm-dis")
+endif(WIN32)
+
+# Compiler flags before including any subprojects:
+if(WIN32)
+# Use defaults
+else(WIN32)
+ set(C_DEFAULT_FLAGS "-Wall -std=c99 -pedantic-errors -Wno-variadic-macros -Wno-long-long -Wextra")
+ set(CXX_DEFAULT_FLAGS "-Wall -std=c++98 -pedantic-errors -Wno-variadic-macros -Wno-long-long -Wextra")
+ add_definitions(-D_GNU_SOURCE)
+endif(WIN32)
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_DEFAULT_FLAGS}")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_DEFAULT_FLAGS}")
-add_subdirectory(hostsupport/hostthreadadapter)
-add_subdirectory(holdingarea)
+if(WIN32)
+ set(LIBRARY_NAME_PREFIX lib)
+else(WIN32)
+ set(LIBRARY_NAME_PREFIX)
+endif(WIN32)
+
+set(EXECUTABLE_BASE_DIR ${EPOCROOT}epoc32/release/tools2)
+set(GLOBAL_LIB_DIR ${EXECUTABLE_BASE_DIR}/lib)
+set(EXPORTED_INC_DIR ${EPOCROOT}epoc32/include/tools)
+set(COMMON_INC_DIR ${PROJECT_SOURCE_DIR}/inc)
+
+add_subdirectory(hostsupport/hostegl) # EGL for subprojects
+add_subdirectory(hostsupport/hostopenvg) # Optimized OpenVG with RI as starting point
+add_subdirectory(hostsupport/hostopengles11) # GLES to OGL wrapper
+add_subdirectory(hostsupport/hostopengles20) # GLES2 to OGL wrapper
+
+if(WIN32)
+ if (SIMULATOR_EXTENSIONS)
+ add_subdirectory(vghwinterface/vghwapiwrapper) # Simulator serialization (host)
+ add_dependencies(KhronosAPIWrapper libEGL libGLESv1 libGLESv2)
+ add_dependencies(syborg-graphicswrapper libEGL libGLESv1 libGLESv2)
+ set(ALL_TARGETS libEGL libOpenVG libGLESv1 libGLESv2 KhronosAPIWrapper syborg-graphicswrapper)
+ else(SIMULATOR_EXTENSIONS)
+ set(ALL_TARGETS libEGL libOpenVG libGLESv1 libGLESv2)
+ endif(SIMULATOR_EXTENSIONS)
+else(WIN32)
+# Wrapper not implemented
+ set(ALL_TARGETS libEGL libOpenVG libGLESv1 libGLESv2)
+endif(WIN32)
+
+if(WIN32)
+ # These help create the win32 release
+ # \todo Use CMake on linux to do the same: Should create zips automatically.
+ if(CMAKE_BUILD_TYPE STREQUAL Debug)
+ set_target_properties(${ALL_TARGETS} PROPERTIES
+ LIBRARY_OUTPUT_DIRECTORY ${GLOBAL_LIB_DIR}
+ ARCHIVE_OUTPUT_DIRECTORY ${GLOBAL_LIB_DIR}
+ RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_BASE_DIR}/deb)
+ else(CMAKE_BUILD_TYPE STREQUAL Debug)
+ set_target_properties(${ALL_TARGETS} PROPERTIES
+ LIBRARY_OUTPUT_DIRECTORY ${GLOBAL_LIB_DIR}
+ ARCHIVE_OUTPUT_DIRECTORY ${GLOBAL_LIB_DIR}
+ RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_BASE_DIR}/rel)
+ endif(CMAKE_BUILD_TYPE STREQUAL Debug)
+endif(WIN32)