CMakeLists.txt
branchbug235_bringup_0
changeset 56 40cc73c24bf8
parent 24 a3f46bb01be2
child 71 243bbc1d70db
--- 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)