SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+IF (APPLE)
+ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+ENDIF()
+
IF(DEFINED DALI_APP_DIR)
SET(BINDIR ${DALI_APP_DIR})
ELSE()
SET(DEMO_DATA_PUBLIC_RW_DIR \\"/tmp/\\")
ENDIF()
-FILE(GLOB LOCAL_IMAGES_PNG RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.png")
-FILE(GLOB LOCAL_IMAGES_JPG RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.jpg")
-FILE(GLOB LOCAL_IMAGES_GIF RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.gif")
-FILE(GLOB LOCAL_IMAGES_WEBP RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.webp")
-FILE(GLOB LOCAL_IMAGES_BMP RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.bmp")
-FILE(GLOB LOCAL_IMAGES_ICO RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.ico")
-FILE(GLOB LOCAL_IMAGES_WBMP RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.wbmp")
-FILE(GLOB LOCAL_IMAGES_KTX RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.ktx")
-FILE(GLOB LOCAL_IMAGES_ASTC RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.astc")
-FILE(GLOB LOCAL_IMAGES_SVG RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.svg")
-FILE(GLOB LOCAL_IMAGES_JSON RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.json")
-
-SET(LOCAL_IMAGES_LIST ${LOCAL_IMAGES_PNG};${LOCAL_IMAGES_JPG};${LOCAL_IMAGES_GIF};${LOCAL_IMAGES_WEBP};${LOCAL_IMAGES_BMP};${LOCAL_IMAGES_ICO};${LOCAL_IMAGES_WBMP};${LOCAL_IMAGES_KTX};${LOCAL_IMAGES_ASTC};${LOCAL_IMAGES_SVG};${LOCAL_IMAGES_JSON})
-FOREACH(flag ${LOCAL_IMAGES_LIST})
- INSTALL(FILES ${LOCAL_IMAGES_DIR}/${flag} DESTINATION ${IMAGES_DIR})
-ENDFOREACH(flag)
+# Gets all sub-directories of SRC_DIR into the list RESULT, which will first be reset to empty.
+MACRO(GET_TREE RESULT SRC_DIR)
+ FILE(GLOB_RECURSE LOCAL_LIST RELATIVE ${SRC_DIR} "${SRC_DIR}/*")
+ SET(${RESULT} "/") # N.B. we need the contents of the root directory as well, and we can't have an empty string in a list in CMake.
+ FOREACH(LOCAL_ENTRY ${LOCAL_LIST})
+ GET_FILENAME_COMPONENT(DIR ${LOCAL_ENTRY} DIRECTORY)
+ LIST(APPEND ${RESULT} ${DIR})
+ ENDFOREACH()
+ LIST(REMOVE_DUPLICATES ${RESULT})
+ENDMACRO()
+
+# Installs files from each subdirectory of ROOT specified in TREE, matching FILTER, to DESTINATION,
+# while keeping the structure, up to (excluding) ROOT.
+MACRO(INSTALL_TREE_FILES ROOT TREE FILTER DESTINATION)
+ FOREACH(LOCAL_DIR ${TREE})
+ SET(SRC_DIR "${ROOT}/${LOCAL_DIR}")
+ FILE(GLOB FILES
+ LIST_DIRECTORIES false
+ RELATIVE ${SRC_DIR} "${SRC_DIR}/${FILTER}")
+ FOREACH(LOCAL_FILE ${FILES})
+ INSTALL(FILES "${SRC_DIR}/${LOCAL_FILE}" DESTINATION "${DESTINATION}/${LOCAL_DIR}")
+ ENDFOREACH()
+ ENDFOREACH()
+ENDMACRO()
+
+GET_TREE(LOCAL_IMAGES_TREE "${LOCAL_IMAGES_DIR}")
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.png" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.jpg" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.gif" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.webp" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.bmp" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.ico" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.wbmp" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.ktx" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.astc" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.svg" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.json" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.riv" ${IMAGES_DIR})
FILE(GLOB LOCAL_VIDEOS_LIST RELATIVE "${LOCAL_VIDEOS_DIR}" "${LOCAL_VIDEOS_DIR}/*")
FOREACH(flag ${LOCAL_VIDEOS_LIST})
INSTALL(FILES ${LOCAL_VIDEOS_DIR}/${flag} DESTINATION ${VIDEOS_DIR})
ENDFOREACH(flag)
-FILE(GLOB LOCAL_MODELS_LIST RELATIVE "${LOCAL_MODELS_DIR}" "${LOCAL_MODELS_DIR}/*")
-FOREACH(flag ${LOCAL_MODELS_LIST})
- INSTALL(FILES ${LOCAL_MODELS_DIR}/${flag} DESTINATION ${MODELS_DIR})
-ENDFOREACH(flag)
+GET_TREE(LOCAL_MODELS_TREE "${LOCAL_MODELS_DIR}")
+INSTALL_TREE_FILES(${LOCAL_MODELS_DIR} "${LOCAL_MODELS_TREE}" "*" ${MODELS_DIR})
FILE(GLOB LOCAL_SCRIPTS_LIST RELATIVE "${LOCAL_SCRIPTS_DIR}" "${LOCAL_SCRIPTS_DIR}/*.json")
FOREACH(flag ${LOCAL_SCRIPTS_LIST})
FOREACH(flag ${REQUIRED_PKGS_CFLAGS})
SET(REQUIRED_CFLAGS "${REQUIRED_CFLAGS} ${flag}")
ENDFOREACH(flag)
+
+ pkg_check_modules(DALI_SCENE_LOADER dali2-scene-loader)
+ IF( DALI_SCENE_LOADER_FOUND )
+ FOREACH(flag ${DALI_SCENE_LOADER_CFLAGS})
+ SET(REQUIRED_CFLAGS "${REQUIRED_CFLAGS} ${flag}")
+ ENDFOREACH(flag)
+
+ SET( REQUIRED_CFLAGS "${REQUIRED_CFLAGS} -DDALI_SCENE_LOADER_AVAILABLE" )
+
+ FOREACH(flag ${DALI_SCENE_LOADER_LDFLAGS})
+ SET(REQUIRED_PKGS_LDFLAGS "${REQUIRED_PKGS_LDFLAGS} ${flag}")
+ ENDFOREACH(flag)
+
+ SET( ENABLE_SCENE_LOADER "ON" )
+ ENDIF()
ENDIF()
SET( VCPKG_INCLUDE_DIR "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include")
-IF( WIN32 ) # WIN32 includes x64 as well according to the cmake doc.
- FIND_PACKAGE( pthreads REQUIRED )
+IF( WIN32 OR APPLE ) # WIN32 includes x64 as well according to the cmake doc.
+ IF ( WIN32 )
+ FIND_PACKAGE( pthreads REQUIRED )
+ ENDIF()
FIND_PACKAGE( curl REQUIRED )
- FIND_LIBRARY( GETOPT_LIBRARY NAMES getopt )
FIND_LIBRARY( EXIF_LIBRARY NAMES libexif )
FIND_PACKAGE( png REQUIRED )
FIND_PACKAGE( jpeg REQUIRED )
FIND_LIBRARY( TURBO_JPEG_LIBRARY NAMES turbojpeg )
- FIND_PACKAGE( unofficial-fontconfig REQUIRED )
FIND_PACKAGE( freetype REQUIRED )
FIND_PACKAGE( harfbuzz REQUIRED )
FIND_LIBRARY( FRIBIDI_LIBRARY NAMES fribidi )
FIND_PACKAGE( WebP REQUIRED )
- FIND_PACKAGE( dali-windows-dependencies REQUIRED )
+ IF ( WIN32 )
+ FIND_LIBRARY( GETOPT_LIBRARY NAMES getopt )
+ FIND_PACKAGE( dali-windows-dependencies REQUIRED )
+ FIND_PACKAGE( unofficial-fontconfig REQUIRED )
+ ENDIF()
+
FIND_PACKAGE( dali2-core REQUIRED )
FIND_PACKAGE( dali2-adaptor REQUIRED )
FIND_PACKAGE( dali2-toolkit REQUIRED )
+ FIND_PACKAGE( dali2-scene-loader )
+
# Set up the include dir
SET( INCLUDE_DIR $ENV{includedir} )
IF( NOT INCLUDE_DIR )
ENDIF()
SET( REQUIRED_LIBS
- PThreads4W::PThreads4W
CURL::libcurl
- ${GETOPT_LIBRARY}
${EXIF_LIBRARY}
${PNG_LIBRARIES}
${GIF_LIBRARIES}
JPEG::JPEG
${TURBO_JPEG_LIBRARY}
- unofficial::fontconfig::fontconfig
Freetype::Freetype
harfbuzz::harfbuzz
${FRIBIDI_LIBRARY}
unofficial::angle::libEGL
unofficial::angle::libGLESv2
- unofficial::cairo::cairo
WebP::webp
WebP::webpdemux
- dali-windows-dependencies::dali-windows-dependencies
dali2-core::dali2-core
dali2-adaptor::dali2-adaptor
dali2-toolkit::dali2-toolkit
)
+
+ IF ( WIN32 )
+ SET( REQUIRED_LIBS
+ ${REQUIRED_LIBS}
+ ${GETOPT_LIBRARY}
+ unofficial::fontconfig::fontconfig
+ unofficial::cairo::cairo
+ PThreads4W::PThreads4W
+ dali-windows-dependencies::dali-windows-dependencies
+ )
+ ENDIF()
+
+ IF (dali2-scene-loader_FOUND)
+ SET(REQUIRED_LIBS
+ ${REQUIRED_LIBS}
+ dali2-scene-loader::dali2-scene-loader
+ )
+ SET( ENABLE_SCENE_LOADER "ON" )
+ ENDIF()
ELSEIF( UNIX )
SET( REQUIRED_LIBS
${REQUIRED_PKGS_LDFLAGS}
SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -DDEBUG_ENABLED")
ENDIF()
+IF( ENABLE_SCENE_LOADER )
+ SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -DDALI_SCENE_LOADER_AVAILABLE")
+ENDIF()
+
IF( UNIX )
IF( NOT ${ENABLE_EXPORTALL} )
ADD_DEFINITIONS( "-DHIDE_DALI_INTERNALS" )
FILE(GLOB PO_FILES RELATIVE "${PO_DIR}" "${PO_DIR}/*.po")
- SET(MSGFMT "/usr/bin/msgfmt")
+ SET(MSGFMT "msgfmt")
SET(MO_FILES_DIR ${CMAKE_BINARY_DIR}/mo)
FILE(MAKE_DIRECTORY ${MO_FILES_DIR})
ADD_COMPILE_OPTIONS( /vmg ) # Avoids a 'reinterpret_cast' compile error while compiling signals and callbacks.
ADD_COMPILE_OPTIONS( /wd4251 ) # Ignores warning C4251: "'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2'"
ELSE()
- SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -Werror -Wall -fPIE")
+ SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -Wall -fPIE")
+ # -Werror is disable for clang in dali-adaptor
+ IF ( NOT ${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" )
+ SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -Werror")
+ ENDIF()
IF( NOT ${ENABLE_EXPORTALL} )
SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -fvisibility=hidden")
MESSAGE( " Folder DEMO_LOCALE_DIR : [" ${DEMO_LOCALE_DIR} "]" )
MESSAGE( " Folder DEMO_EXAMPLE_BIN : [" ${DEMO_EXAMPLE_BIN} "]" )
MESSAGE( " Folder DEMO_LANG : [" ${DEMO_LANG} "]" )
+MESSAGE( " Scene Loader Enabled : [" ${ENABLE_SCENE_LOADER} "]" )