Top Level CMakeLists
authorJustin Dickow <jjdickow@gmail.com>
Tue, 15 Jul 2014 15:39:49 +0000 (11:39 -0400)
committerJustin Dickow <jjdickow@gmail.com>
Tue, 15 Jul 2014 15:39:49 +0000 (11:39 -0400)
Signed-off-by: Justin Dickow <jjdickow@gmail.com>
CMakeLists.txt

index dc6e3c5..3181ed5 100644 (file)
 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 # POSSIBILITY OF SUCH DAMAGE.
 
+cmake_minimum_required(VERSION 2.8.0)
+
+set (PROJECT smartDeviceLinkCore)
+
 #Jenkins integration section
 #dont modify this section if you dont know details about integration with Jenkins!!!
 set (HMI "web" CACHE STRING "HMI type")
@@ -35,13 +39,17 @@ option(HMI2 "Use Qt HMI" OFF)
 option(EXTENDED_MEDIA_MODE "Turn on and off extended Madia Manager features relates to PulseAudio A2DP and GStreamer" OFF)
 option(BUILD_SHARED_LIBS "Build all libraries as shared (if ON) or static (if OFF)" OFF)
 option(BUILD_BT_SUPPORT "Bluetooth support" ON)
-option(BUILD_USB_SUPPORT "libusb support" OFF)
-option(BUILD_AVAHI_SUPPORT "libavahi support" OFF)
+option(BUILD_USB_SUPPORT "libusb support" ON)
+option(BUILD_MME_SUPPORT "Apple devices support" OFF)
+option(MME_MQ "PASA mqueue event system for Apple devices" ON)
+option(BUILD_AVAHI_SUPPORT "libavahi support" ON)
 option(BUILD_RWLOCK_SUPPORT "rwlocks support" OFF)
 option(BUILD_BACKTRACE_SUPPORT "backtrace support" ON)
-option(BUILD_TESTS "Possibility to build and run tests" ON)
+option(BUILD_TESTS "Possibility to build and run tests" OFF)
+option(TIME_TESTER "Enable profiling time test util" ON)
 option(BUILD_TESTS_WITH_HMI "Possibility to build and run HMI tests" OFF)
 option(ENABLE_LOG "Logging feature" ON)
+option(ENABLE_GCOV "gcov code coverage feature" OFF)
 option(EXTENDED_POLICY_FLAG "Build with specific features and extended functionality" OFF)
 
 set(OS_TYPE_OPTION     "$ENV{OS_TYPE}")
@@ -50,6 +58,7 @@ set(HMI_TYPE_OPTION   "$ENV{HMI_TYPE}")
 set(TARGET_OPTION      "$ENV{TARGET}")
 set(MEDIA_MODE_OPTION  "$ENV{MEDIA_MODE}")
 set(HMI_ADAPTER_OPTION         "$ENV{HMI_ADAPTER}")
+set(ENABLE_LOG_OPTION  "$ENV{ENABLE_LOG}")
 
 if (OS_TYPE_OPTION)
   if (${OS_TYPE_OPTION} STREQUAL "QNX")
@@ -100,12 +109,16 @@ if (HMI_ADAPTER_OPTION)
   endif()
 endif()
 
-#Jenkins integration section end
-
+if (ENABLE_LOG_OPTION)
+  if (${ENABLE_LOG_OPTION} STREQUAL "LOG_OFF")
+    message(STATUS "Jenkins integration: Log is turned off")
+    set (ENABLE_LOG OFF)
+  endif()
+endif()
 
-cmake_minimum_required(VERSION 2.8.0)
+#Jenkins integration section end
 
-set (PROJECT smartDeviceLinkCore)
+# This command must be here after Jenkins integration section
 project (${PROJECT})
 
 #ADD_DEPENDENCIES(${PROJECT} Policy)
@@ -116,7 +129,11 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
 # flag is handled by CMake
 set(CMAKE_INSTALL_PREFIX .)
 set(ARCHIVE_OUTPUT_DIRECTORY ./bin)
-set(CMAKE_CXX_FLAGS "-fPIC -g3 -ggdb3 -std=gnu++0x -Werror=return-type -Wuninitialized --coverage")
+set(CMAKE_CXX_FLAGS "-fPIC -g3 -ggdb3 -std=gnu++0x -Werror=return-type -Wuninitialized")
+if (ENABLE_GCOV)
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
+  add_definitions(-DGCOV_ENABLED)
+endif()
 set(CMAKE_CXX_FLAGS_RELEASE "-fPIC -s -O2") #It will be appended to CMAKE_CXX_FLAGS in release
 
 if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
@@ -137,6 +154,13 @@ if (BUILD_BT_SUPPORT)
   add_definitions(-DBLUETOOTH_SUPPORT)
 endif()
 
+if (BUILD_MME_SUPPORT)
+  add_definitions(-DMME_SUPPORT)
+  if (MME_MQ)
+    add_definitions(-DMME_MQ)
+  endif(MME_MQ)
+endif(BUILD_MME_SUPPORT)
+
 if (BUILD_AVAHI_SUPPORT)
   add_definitions(-DAVAHI_SUPPORT)
 # --- Check libavahi-common, libavahi-client availability
@@ -151,10 +175,14 @@ if (BUILD_BACKTRACE_SUPPORT)
   add_definitions(-DBACKTRACE_SUPPORT)
 endif()
 
-if (ENABLE_LOG)
+if(ENABLE_LOG)
   add_definitions(-DENABLE_LOG)
 endif()
 
+if (TIME_TESTER)
+    add_definitions(-DTIME_TESTER)
+endif()
+
 # TODO(AK): check current OS here
 add_definitions(-DOS_POSIX)
 
@@ -342,3 +370,5 @@ FIND_PACKAGE(Doxygen)
     MESSAGE(STATUS "To enable processing of MscGen comments please install mscgen")
     MESSAGE(STATUS "sudo apt-get install mscgen")
 ENDIF(DOXYGEN_FOUND)
+
+