diff options
author | Stanislav Vorobiov <s.vorobiov@samsung.com> | 2013-07-26 11:50:08 +0400 |
---|---|---|
committer | Stanislav Vorobiov <s.vorobiov@samsung.com> | 2013-07-26 11:50:08 +0400 |
commit | 0988d6115d328588f956a6bfd741f0af994d866d (patch) | |
tree | 4da189270c72fe6efbc3d8231bee71d387850be6 /CMakeLists.txt | |
parent | 93546a60348f4c4037cec3f309490c8efd9511a8 (diff) | |
download | emulator-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.txt | 111 |
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) |