1d4afb5ceSopenharmony_cicmake_minimum_required(VERSION 2.8.12)
2d4afb5ceSopenharmony_cifind_package(libwebsockets CONFIG REQUIRED)
3d4afb5ceSopenharmony_ci
4d4afb5ceSopenharmony_ciif(NOT DEFINED CMAKE_BUILD_TYPE)
5d4afb5ceSopenharmony_ci	set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type")
6d4afb5ceSopenharmony_ciendif()
7d4afb5ceSopenharmony_ci
8d4afb5ceSopenharmony_ci# This shows one way to build a standalone plugin
9d4afb5ceSopenharmony_ci# outside of lws itself
10d4afb5ceSopenharmony_ci
11d4afb5ceSopenharmony_ciproject(lws-protocol-plugin-example C)
12d4afb5ceSopenharmony_ci
13d4afb5ceSopenharmony_ciset(PACKAGE "lws-protocol-plugin-example")
14d4afb5ceSopenharmony_ciset(CPACK_PACKAGE_NAME "${PACKAGE}")
15d4afb5ceSopenharmony_ciset(CPACK_PACKAGE_VERSION "0.1")
16d4afb5ceSopenharmony_ciset(CPACK_PACKAGE_VENDOR "andy@warmcat.com")
17d4afb5ceSopenharmony_ciset(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PACKAGE} ${PACKAGE_VERSION}")
18d4afb5ceSopenharmony_ciset(SOVERSION "1")
19d4afb5ceSopenharmony_ciset(VERSION "0.1")
20d4afb5ceSopenharmony_ci
21d4afb5ceSopenharmony_ciset(PLUGIN_NAME "protocol_example_standalone")
22d4afb5ceSopenharmony_ci# space-separated list of sources
23d4afb5ceSopenharmony_ciset(PLUGIN_SRCS protocol_example_standalone.c)
24d4afb5ceSopenharmony_ci
25d4afb5ceSopenharmony_ciset(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/")
26d4afb5ceSopenharmony_ci
27d4afb5ceSopenharmony_cimessage(STATUS "CMAKE_TOOLCHAIN_FILE='${CMAKE_TOOLCHAIN_FILE}'")
28d4afb5ceSopenharmony_ci
29d4afb5ceSopenharmony_ci# Try to find the current Git hash.
30d4afb5ceSopenharmony_cifind_package(Git)
31d4afb5ceSopenharmony_ciif(GIT_EXECUTABLE)
32d4afb5ceSopenharmony_ci	execute_process(
33d4afb5ceSopenharmony_ci    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
34d4afb5ceSopenharmony_ci    COMMAND "${GIT_EXECUTABLE}" describe
35d4afb5ceSopenharmony_ci    OUTPUT_VARIABLE GIT_HASH
36d4afb5ceSopenharmony_ci    OUTPUT_STRIP_TRAILING_WHITESPACE
37d4afb5ceSopenharmony_ci    )
38d4afb5ceSopenharmony_ci	execute_process(
39d4afb5ceSopenharmony_ci    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
40d4afb5ceSopenharmony_ci    COMMAND "whoami"
41d4afb5ceSopenharmony_ci    OUTPUT_VARIABLE GIT_USER
42d4afb5ceSopenharmony_ci    OUTPUT_STRIP_TRAILING_WHITESPACE
43d4afb5ceSopenharmony_ci    )
44d4afb5ceSopenharmony_ci	execute_process(
45d4afb5ceSopenharmony_ci    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
46d4afb5ceSopenharmony_ci    COMMAND "hostname"
47d4afb5ceSopenharmony_ci    OUTPUT_VARIABLE GIT_HOST
48d4afb5ceSopenharmony_ci    OUTPUT_STRIP_TRAILING_WHITESPACE
49d4afb5ceSopenharmony_ci    )
50d4afb5ceSopenharmony_ci	string(REGEX REPLACE "([^\\])[\\]([^\\])" "\\1\\\\\\\\\\2" GIT_USER ${GIT_USER})
51d4afb5ceSopenharmony_ci    set(LWS_BUILD_HASH ${GIT_USER}@${GIT_HOST}-${GIT_HASH})
52d4afb5ceSopenharmony_ci    message("Git commit hash: ${LWS_BUILD_HASH}")
53d4afb5ceSopenharmony_ciendif()
54d4afb5ceSopenharmony_ci
55d4afb5ceSopenharmony_ciset(CMAKE_C_FLAGS "-fPIC ${CMAKE_C_FLAGS}")
56d4afb5ceSopenharmony_ci
57d4afb5ceSopenharmony_cisource_group("Headers Private"   FILES ${PLUGIN_HDR})
58d4afb5ceSopenharmony_cisource_group("Sources"   FILES ${PLUGIN_SRCS})
59d4afb5ceSopenharmony_ciadd_library(${PLUGIN_NAME} SHARED ${PLUGIN_SRCS} ${PLUGIN_HDR})
60d4afb5ceSopenharmony_citarget_compile_definitions(${PLUGIN_NAME} PRIVATE LWS_BUILDING_SHARED)
61d4afb5ceSopenharmony_ci
62d4afb5ceSopenharmony_citarget_link_libraries(${PLUGIN_NAME} -lwebsockets ${LIBWEBSOCKETS_DEP_LIBS})
63d4afb5ceSopenharmony_ci
64d4afb5ceSopenharmony_ci# Set test app specific defines.
65d4afb5ceSopenharmony_ciset_property(TARGET ${PLUGIN_NAME}
66d4afb5ceSopenharmony_ci	     PROPERTY COMPILE_DEFINITIONS
67d4afb5ceSopenharmony_ci	     INSTALL_DATADIR="${CMAKE_INSTALL_PREFIX}/plugins"
68d4afb5ceSopenharmony_ci)
69d4afb5ceSopenharmony_ci
70d4afb5ceSopenharmony_cilist(APPEND PLUGINS_LIST ${PLUGIN_NAME})
71d4afb5ceSopenharmony_ci
72d4afb5ceSopenharmony_ciinstall(TARGETS ${PLUGINS_LIST}
73d4afb5ceSopenharmony_ci	PERMISSIONS  OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE OWNER_READ GROUP_READ WORLD_READ
74d4afb5ceSopenharmony_ci	DESTINATION share/libwebsockets-test-server/plugins
75d4afb5ceSopenharmony_ci	COMPONENT plugins)
76