Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimofey <t.danshin@corp.mail.ru>2016-09-13 19:51:58 +0300
committerTimofey <t.danshin@corp.mail.ru>2016-09-28 18:58:24 +0300
commitff855ad4133539dcc8a05e18fa0c0b318c65fb58 (patch)
treebfbb8f0f41cb217cd61f11f50f5bfbd1361425ca /CMakeLists.txt
parent2143577410e715b5867addfb97bb0fdc2c18b170 (diff)
Working on platform.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt86
1 files changed, 78 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d22bcd2013..5957922f05 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,24 +2,42 @@ cmake_minimum_required(VERSION 3.2)
project(omim C CXX)
-add_subdirectory(3party/minizip)
-add_subdirectory(3party/succinct)
-add_subdirectory(3party/tomcrypt)
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
+# Add third-party subdirectories
-add_compile_options(
- "-Wall"
- "-std=c++11"
-)
+
+# Find installed packages
find_package(Threads)
+
+find_package(Qt5Core REQUIRED)
+find_package(Qt5Network REQUIRED)
+find_package(Qt5Gui REQUIRED)
+find_package(Qt5Widgets REQUIRED)
+
+if (APPLE)
+ find_library(APL_SYSCON SystemConfiguration)
+endif()
+
find_library(LIBZ NAMES z)
if (LIBZ STREQUAL "LIBZ-NOTFOUND")
message(FATAL_ERROR "Failed to find libz library.")
endif()
+
get_filename_component(PROJECT_SOURCE_DIR . ABSOLUTE)
-include_directories(${CMAKE_HOME_DIRECTORY} "${CMAKE_HOME_DIRECTORY}/3party/boost")
+include_directories(
+ ${CMAKE_HOME_DIRECTORY}
+ ${Qt5Core_LIBRARIES}
+ ${Qt5Core_INCLUDE_DIRS}
+ ${Qt5Network_LIBRARIES}
+ ${Qt5Network_INCLUDE_DIRS}
+ "${CMAKE_HOME_DIRECTORY}/3party/boost"
+)
+
+# Set environment variables
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR})
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR})
@@ -36,6 +54,45 @@ if ("${NO_TESTS}" STREQUAL "")
set(NO_TESTS FALSE)
endif()
+# End of setting environment variables
+
+# Set target platform:
+
+function(omim_set_platform_var PLATFORM_VAR pattern)
+ set(${PLATFORM_VAR} FALSE PARENT_SCOPE)
+
+ if ("${PLATFORM}" STREQUAL "")
+ if (${ARGN})
+ list(GET ARGN 0 default_case)
+ if (${default_case})
+ set(${PLATFORM_VAR} TRUE PARENT_SCOPE)
+ message("Setting ${PLATFORM_VAR} to true")
+ endif()
+ endif()
+ else()
+ message("Platform: ${PLATFORM}")
+ if (${PLATFORM} MATCHES ${pattern})
+ set(${PLATFORM_VAR} TRUE PARENT_SCOPE)
+ endif()
+ endif()
+endfunction()
+
+omim_set_platform_var(PL_IPHONE "iphone-.*")
+omim_set_platform_var(PL_ANDROID "android-.*")
+omim_set_platform_var(PL_MAC "macx-.*" ${APPLE})
+omim_set_platform_var(PL_WIN "win32-.*" ${WIN32})
+
+if (${UNIX} AND (NOT ${PL_MAC}))
+ set(LINUX_DETECTED TRUE)
+else()
+ set(LINUX_DETECTED FALSE)
+endif()
+
+omim_set_platform_var(PL_LINUX "linux-.*" ${LINUX_DETECTED})
+
+# End of setting the target platform
+
+# Functions for using in subdirectories
function(omim_add_library library)
add_library(${library} ${ARGN})
@@ -62,9 +119,22 @@ function(omim_link_libraries target)
endif()
endfunction()
+# End of functions for subdirectories
+
+# Include subdirectories
+add_subdirectory(3party/minizip)
+add_subdirectory(3party/succinct)
+add_subdirectory(3party/tomcrypt)
+add_subdirectory(3party/jansson)
+
+add_compile_options(
+ "-Wall"
+ "-std=c++11"
+)
add_subdirectory(base)
add_subdirectory(coding)
#add_subdirectory(editor)
add_subdirectory(geometry)
+add_subdirectory(platform)
#add_subdirectory(storage)