summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorStanislav Vorobiov <s.vorobiov@samsung.com>2013-07-26 11:50:08 +0400
committerStanislav Vorobiov <s.vorobiov@samsung.com>2013-07-26 11:50:08 +0400
commit0988d6115d328588f956a6bfd741f0af994d866d (patch)
tree4da189270c72fe6efbc3d8231bee71d387850be6 /CMakeLists.txt
parent93546a60348f4c4037cec3f309490c8efd9511a8 (diff)
downloademulator-yagl-0988d6115d328588f956a6bfd741f0af994d866d.tar.gz
emulator-yagl-0988d6115d328588f956a6bfd741f0af994d866d.tar.bz2
emulator-yagl-0988d6115d328588f956a6bfd741f0af994d866d.zip
YaGL: Moved to CMake
Change-Id: I0ff71eba9c33d8b298b4113b30a8a659d9b1a09f
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt111
1 files changed, 111 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..f04d00b
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,111 @@
+cmake_minimum_required(VERSION 2.6)
+cmake_policy(SET CMP0014 NEW)
+
+option(CROSSCOMPILING "Enable cross-compiling")
+
+if (CROSSCOMPILING)
+ set(CMAKE_SYSTEM_NAME "Linux")
+endif ()
+
+project(YAGL)
+
+# USER SETTINGS
+
+if (CMAKE_BUILD_TYPE STREQUAL "")
+ set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: None (CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
+endif ()
+
+option(PLATFORM_X11 "Enable X11 platform" TRUE)
+option(PLATFORM_GBM "Enable GBM platform" TRUE)
+option(PLATFORM_WAYLAND "Enable wayland platform" TRUE)
+
+set(INSTALL_LIB_DIR "lib" CACHE STRING "Where to install library files")
+
+# END USER SETTINGS
+
+if ((NOT PLATFORM_X11) AND (NOT PLATFORM_GBM) AND (NOT PLATFORM_WAYLAND))
+ message(FATAL_ERROR "At least one platform must be supported")
+endif ()
+
+#out dir
+
+set(YAGL_OUT_DIR ${YAGL_BINARY_DIR}/out)
+
+#set includes/libs
+
+set(YAGL_INCLUDE_DIR "${YAGL_SOURCE_DIR}/include")
+include_directories(${YAGL_INCLUDE_DIR})
+
+#find packages
+
+find_package(Threads)
+find_package(PkgConfig)
+
+pkg_check_modules(LIBDRM REQUIRED libdrm)
+add_definitions(${LIBDRM_CFLAGS})
+include_directories(${LIBDRM_INCLUDE_DIRS})
+link_directories(${LIBDRM_LIBRARY_DIRS})
+
+pkg_check_modules(LIBDRM_VIGS REQUIRED libdrm_vigs)
+add_definitions(${LIBDRM_VIGS_CFLAGS})
+include_directories(${LIBDRM_VIGS_INCLUDE_DIRS})
+link_directories(${LIBDRM_VIGS_LIBRARY_DIRS})
+
+if (PLATFORM_X11)
+ pkg_check_modules(X11 REQUIRED x11)
+ pkg_check_modules(XEXT REQUIRED xext)
+ pkg_check_modules(XFIXES REQUIRED xfixes)
+
+ add_definitions(${X11_CFLAGS})
+ include_directories(${X11_INCLUDE_DIRS})
+ link_directories(${X11_LIBRARY_DIRS})
+
+ add_definitions(${XEXT_CFLAGS})
+ include_directories(${XEXT_INCLUDE_DIRS})
+ link_directories(${XEXT_LIBRARY_DIRS})
+
+ add_definitions(${XFIXES_CFLAGS})
+ include_directories(${XFIXES_INCLUDE_DIRS})
+ link_directories(${XFIXES_LIBRARY_DIRS})
+endif ()
+
+#fix output directories
+
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${YAGL_OUT_DIR}/lib)
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${YAGL_OUT_DIR}/bin)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${YAGL_OUT_DIR}/lib)
+
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -D_REENTRANT -fPIC -DPIC")
+foreach (CONFIGURATION RELEASE MINSIZEREL RELWITHDEBINFO)
+ string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_${CONFIGURATION} "${CMAKE_C_FLAGS_${CONFIGURATION}}")
+endforeach ()
+
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--exclude-libs,ALL")
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined -Wl,--exclude-libs,ALL")
+
+message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
+if (PLATFORM_X11)
+message(STATUS "X11 platform: yes")
+else ()
+message(STATUS "X11 platform: no")
+endif ()
+
+if (PLATFORM_GBM)
+message(STATUS "GBM platform: yes")
+else ()
+message(STATUS "GBM platform: no")
+endif ()
+
+if (PLATFORM_WAYLAND)
+message(STATUS "Wayland platform: yes")
+else ()
+message(STATUS "Wayland platform: no")
+endif ()
+
+message(STATUS "Install prefix: " ${CMAKE_INSTALL_PREFIX})
+message(STATUS "Install lib dir: " ${INSTALL_LIB_DIR})
+
+add_subdirectory(EGL)
+add_subdirectory(GLESv1_CM)
+add_subdirectory(GLESv2)