Linking pthreads optional
[platform/core/uifw/dali-core.git] / build / tizen / CMakeLists.txt
index 4fa9546..5c2673b 100644 (file)
@@ -69,12 +69,18 @@ GET_FILENAME_COMPONENT(ROOT_SRC_DIR ${ROOT_SRC_DIR} ABSOLUTE)
 # Set up the include dir
 SET( INCLUDE_DIR $ENV{includedir} )
 IF( NOT INCLUDE_DIR )
+  SET( INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR} )
+ENDIF()
+IF( NOT INCLUDE_DIR )
   SET( INCLUDE_DIR ${PREFIX}/include )
 ENDIF()
 
 # Set up the lib dir
 SET( LIB_DIR $ENV{libdir} )
 IF( NOT LIB_DIR )
+  SET( LIB_DIR ${CMAKE_INSTALL_LIBDIR} )
+ENDIF()
+IF( NOT LIB_DIR )
   SET( LIB_DIR ${PREFIX}/lib )
 ENDIF()
 
@@ -133,8 +139,14 @@ ENDIF()
 
 ADD_LIBRARY( ${name} ${LIBTYPE} ${SOURCES} )
 
+# pthread required due to gcc issue
+FIND_LIBRARY(PTHREAD pthread)
+IF(PTHREAD)
+  SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} -lpthread)
+ENDIF()
+
 TARGET_LINK_LIBRARIES( ${name}
-  -lpthread
+  ${OPTIONAL_LIBS}
   ${COVERAGE}
 )
 
@@ -168,63 +180,67 @@ INSTALL_HEADERS_WITH_DIRECTORY(DEVEL_API_HEADERS ${ROOT_SRC_DIR}/dali "dali")
 INSTALL_HEADERS_WITH_DIRECTORY(INTEGRATION_API_HEADERS ${ROOT_SRC_DIR}/dali "dali")
 INSTALL_HEADERS_WITH_DIRECTORY(PACKAGE_DOXY_HEADERS ${PACKAGE_DOXY_SRC_DIR} "dali/doc" )
 
-IF(UNIX)
-  # Define custom rules for coverage
-  SET(COVERAGE_DIR .cov)
-  SET(COVERAGE_OUTPUT_DIR doc/coverage)
-
-  # lcov prior to 1.10 doesn't have -rc option; this and subsequent version don't output
-  # branch coverage. Determine the lcov version, and enable branch coverage accordingly.
-  EXECUTE_PROCESS( COMMAND bash -c "lcov --version | cut -d' ' -f4" OUTPUT_VARIABLE LCOV_VERSION )
-  STRING( REPLACE "." ";" LCOV_VLIST ${LCOV_VERSION})
-  IF( NOT $<VERSION_LESS:${LCOV_VERSION},"1.10"> )
-    SET(LCOV_OPTS --rc lcov_branch_coverage=1)
-  ENDIF()
-
-  ADD_CUSTOM_TARGET( rename_cov_data ./rename-cov-data )
-
-  ADD_CUSTOM_TARGET( cov_data lcov ${LCOV_OPTS} --base-directory . --directory . -c -o dali.info
-          COMMAND lcov ${LCOV_OPTS} --remove dali.info \"*/dali-env/*\" \"/usr/include/*\" \"public-api/shader-effects/*\" \"*/image-actor*\" -o dali.info )
-
-  ADD_CUSTOM_TARGET( coverage genhtml ${LCOV_OPTS} -o ${COVERAGE_OUTPUT_DIR} dali.info
-    DEPENDS cov_data )
-
-  ADD_CUSTOM_TARGET( reset_coverage @lcov -z --directory `pwd` )
-
-  # Define custom rule for distclean
-  ADD_CUSTOM_TARGET( distclean @echo cleaning for source distribution )
-  ADD_CUSTOM_COMMAND(
-        DEPENDS clean
-        COMMENT "distribution clean"
-        COMMAND find
-        ARGS    .
-        -not -name config.cmake -and \(
-        -name tester.c -or
-        -name Testing -or
-        -name CMakeFiles -or
-        -name doc -or
-        -name cmake.depends -or
-        -name cmake.check_depends -or
-        -name CMakeCache.txt -or
-        -name cmake.check_cache -or
-        -name *.cmake -or
-        -name Makefile -or
-        -name core -or
-        -name core.* -or
-        -name gmon.out -or
-        -name install_manifest.txt -or
-        -name *.pc -or
-        -name *.gcov -or
-        -name *.gcno -or
-        -name *.gcda -or
-        -name *~ -or
-        -name libdali*.so* \)
-        | grep -v TC | xargs rm -rf
-        TARGET  distclean
-        VERBATIM
-        )
-
-ENDIF(UNIX)
+IF( UNIX )
+  FIND_PROGRAM( LCOV_BIN "lcov" )
+  IF( LCOV_BIN )
+
+    # Define custom rules for coverage
+    SET(COVERAGE_DIR .cov)
+    SET(COVERAGE_OUTPUT_DIR doc/coverage)
+
+    # lcov prior to 1.10 doesn't have -rc option; this and subsequent version don't output
+    # branch coverage. Determine the lcov version, and enable branch coverage accordingly.
+    EXECUTE_PROCESS( COMMAND bash -c "${LCOV_BIN} --version | cut -d' ' -f4" OUTPUT_VARIABLE LCOV_VERSION )
+    STRING( REPLACE "." ";" LCOV_VLIST ${LCOV_VERSION})
+    IF( NOT $<VERSION_LESS:${LCOV_VERSION},"1.10"> )
+      SET(LCOV_OPTS --rc lcov_branch_coverage=1)
+    ENDIF()
+
+    ADD_CUSTOM_TARGET( rename_cov_data ./rename-cov-data )
+
+    ADD_CUSTOM_TARGET( cov_data ${LCOV_BIN} ${LCOV_OPTS} --base-directory . --directory . -c -o dali.info
+      COMMAND ${LCOV_BIN} ${LCOV_OPTS} --remove dali.info \"*/dali-env/*\" \"/usr/include/*\" \"public-api/shader-effects/*\" \"*/image-actor*\" -o dali.info )
+
+    ADD_CUSTOM_TARGET( coverage genhtml ${LCOV_OPTS} -o ${COVERAGE_OUTPUT_DIR} dali.info
+      DEPENDS cov_data )
+
+    ADD_CUSTOM_TARGET( reset_coverage @${LCOV_BIN} -z --directory `pwd` )
+
+    # Define custom rule for distclean
+    ADD_CUSTOM_TARGET( distclean @echo cleaning for source distribution )
+    ADD_CUSTOM_COMMAND(
+          DEPENDS clean
+          COMMENT "distribution clean"
+          COMMAND find
+          ARGS    .
+          -not -name config.cmake -and \(
+          -name tester.c -or
+          -name Testing -or
+          -name CMakeFiles -or
+          -name doc -or
+          -name cmake.depends -or
+          -name cmake.check_depends -or
+          -name CMakeCache.txt -or
+          -name cmake.check_cache -or
+          -name *.cmake -or
+          -name Makefile -or
+          -name core -or
+          -name core.* -or
+          -name gmon.out -or
+          -name install_manifest.txt -or
+          -name *.pc -or
+          -name *.gcov -or
+          -name *.gcno -or
+          -name *.gcda -or
+          -name *~ -or
+          -name libdali*.so* \)
+          | grep -v TC | xargs rm -rf
+          TARGET  distclean
+          VERBATIM
+          )
+
+  ENDIF( LCOV_BIN )
+ENDIF( UNIX )
 
 # Linker Test
 SET( DALI_TEST_SUITE_DIR ${ROOT_SRC_DIR}/automated-tests/src/dali/dali-test-suite-utils )