-
-#--------------------------------------------------------------------------
-# WARNING:
-# Do not change this cmake template
-# Customise your preferences in "./etc/config.cmake"
-#--------------------------------------------------------------------------
-
-
-# Generic useful macro
-# -----------------------
-macro(PROJECT_TARGET_ADD TARGET_NAME)
- set(PROJECT_TARGETS ${PROJECT_TARGETS} ${TARGET_NAME} CACHE INTERNAL PROJECT_TARGETS)
- set(TARGET_NAME ${TARGET_NAME})
-endmacro(PROJECT_TARGET_ADD)
-
-macro(defstr name value)
- add_definitions(-D${name}=${value})
-endmacro(defstr)
-
-macro(setc name value)
- if(NOT DEFINED ${name})
- set(${name} ${value})
- endif(NOT DEFINED ${name})
-endmacro(setc)
-
-# Dumb macro to add each directory under a path. Make sure we grab all header files!
-macro(fill_include_dir path)
- file(GLOB_RECURSE dirlist LIST_DIRECTORIES true "${path}/*")
- foreach(filename ${dirlist})
- if(IS_DIRECTORY ${filename})
- include_directories(${filename})
- endif(IS_DIRECTORY ${filename})
- endforeach()
-endmacro(fill_include_dir)
-
-# Helper function to retrieve source files from a library repo.
-function(find_source_files path)
- file(GLOB_RECURSE filelist "${path}/*.[cpx]")
- foreach(filename ${filelist})
- if(NOT ${filename} MATCHES ".*(test|example|sample).*")
- string(APPEND sources "${filename};")
- endif(NOT ${filename} MATCHES ".*(test|example|sample).*")
- endforeach()
- set(sources_files ${sources} PARENT_SCOPE)
-endfunction(find_source_files)
-
-# WGT packaging function. TYPE can be HTML5, NATIVE, HTML5-HYBRID or BINDING
-macro(build_widget type)
- message(STATUS "Creation of ${TARGET_NAME}.wgt package for AppFW")
-
- configure_file(${PROJECT_WGT_DIR}/config.xml config.xml)
-
- if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR}/etc")
- file(GLOB conf_files "${PROJECT_WGT_DIR}/etc/*")
- foreach(filename ${conf_files})
- STRING(REGEX REPLACE "^.*/(.*)$" "\\1" shortname ${filename})
- message(STATUS "Copying config file ${shortname}")
- configure_file(${filename} ${shortname})
- endforeach()
- endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR}/etc")
-
- # Include HTML5 files to be packaged
- if(${type} STREQUAL "HTML5")
- file(GLOB_RECURSE HTML5FILES app/*)
-
- if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/gulpfile.js")
- set(HTML5FILES ${HTML5FILES} "${CMAKE_CURRENT_SOURCE_DIR}/gulpfile.js")
- endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/gulpfile.js")
-
- if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/bower.json")
- set(HTML5FILES ${HTML5FILES} "${CMAKE_CURRENT_SOURCE_DIR}/bower.json")
- endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/bower.json")
-
- if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/package.json")
- set(HTML5FILES ${HTML5FILES} "${CMAKE_CURRENT_SOURCE_DIR}/package.json")
- endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/package.json")
- endif(${type} STREQUAL "HTML5")
-
- if(${type} STREQUAL "HTML5")
- add_custom_command(
- OUTPUT ${TARGET_NAME}.wgt
- DEPENDS ${HTML5FILES} ${PROJECT_WGT_DIR}/config.xml
- COMMAND rm -rf package
- COMMAND mkdir -p package/lib package/htdocs package/etc package/bin
- COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} && gulp widget-config-prod
- COMMAND cp -a dist.prod/* ${CMAKE_CURRENT_BINARY_DIR}/package/htdocs
- )
- endif(${type} STREQUAL "HTML5")
-
- if(${type} STREQUAL "HTML5-HYBRID")
- add_custom_command(
- OUTPUT ${TARGET_NAME}.wgt
- DEPENDS ${HTML5FILES} ${PROJECT_WGT_DIR}/config.xml
- COMMAND rm -rf package
- COMMAND mkdir -p package/lib package/htdocs package/etc package/bin
- COMMAND cp ${TARGET_NAME}.so package/lib
- )
- endif(${type} STREQUAL "HTML5-HYBRID")
-
- if(${type} STREQUAL "BINDING")
- add_custom_command(
- OUTPUT ${TARGET_NAME}.wgt
- DEPENDS ${PROJECT_WGT_DIR}/config.xml
- COMMAND rm -rf package
- COMMAND mkdir -p package/lib package/htdocs package/etc package/bin
- COMMAND cp ${TARGET_NAME}.so package/lib
- )
- endif(${type} STREQUAL "BINDING")
-
- if(${type} STREQUAL "NATIVE")
- add_custom_command(
- OUTPUT ${TARGET_NAME}.wgt
- DEPENDS ${PROJECT_WGT_DIR}/config.xml
- COMMAND rm -rf package
- COMMAND mkdir -p package/lib package/htdocs package/etc package/bin
- COMMAND cp ${TARGET_NAME} package/bin
- )
- endif(${type} STREQUAL "NATIVE")
-
- add_custom_command(
- OUTPUT ${TARGET_NAME}.wgt
- COMMAND cp config.xml package/
- COMMAND cp ${conf_files} package/etc
- COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/packaging/wgt/${PROJECT_ICON} package/icon.png
- COMMAND wgtpkg-pack -f -o ${TARGET_NAME}.wgt package
- APPEND
- )
- add_custom_target(widget ALL DEPENDS ${TARGET_NAME}.wgt)
-endmacro()
-