Add xdg auto generation process to cmake pipeline
This commit is contained in:
parent
f786bd01d9
commit
33d0b03b5f
|
@ -31,3 +31,6 @@ docs/spec.pdf
|
||||||
.tex
|
.tex
|
||||||
.pdf
|
.pdf
|
||||||
docs/overall_picture.png
|
docs/overall_picture.png
|
||||||
|
vendor/
|
||||||
|
\#*#
|
||||||
|
*.\#*
|
||||||
|
|
|
@ -135,10 +135,11 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Feynman Setup ===================================
|
# Feynman Setup ===================================
|
||||||
|
add_definitions(-DWLR_USE_UNSTABLE)
|
||||||
include_directories(SYSTEM ${PROJECT_BINARY_DIR}/src)
|
include_directories(SYSTEM ${PROJECT_BINARY_DIR}/src)
|
||||||
include_directories(SYSTEM ${FEYNMAN_EMACS_DIR}/inculde)
|
include_directories(SYSTEM ${FEYNMAN_EMACS_DIR}/inculde)
|
||||||
|
|
||||||
|
|
||||||
# Hide all the symbols by default
|
# Hide all the symbols by default
|
||||||
if(NOT DEFINED CMAKE_CXX_VISIBILITY_PRESET AND
|
if(NOT DEFINED CMAKE_CXX_VISIBILITY_PRESET AND
|
||||||
NOT DEFINED CMAKE_VISIBILITY_INLINES_HIDDEN)
|
NOT DEFINED CMAKE_VISIBILITY_INLINES_HIDDEN)
|
||||||
|
|
|
@ -14,10 +14,16 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
add_library(feynman SHARED
|
add_library(feynman SHARED
|
||||||
feynman.c
|
feynman.c
|
||||||
|
queue.c
|
||||||
|
compositor.c
|
||||||
|
utils.c
|
||||||
|
xdg-shell-protocol.c
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
set_target_properties(feynman PROPERTIES
|
set_target_properties(feynman PROPERTIES
|
||||||
VERSION ${PROJECT_VERSION}
|
VERSION ${PROJECT_VERSION}
|
||||||
SOVERSION ${PROJECT_VERSION_MAJOR}
|
SOVERSION ${PROJECT_VERSION_MAJOR}
|
||||||
|
@ -40,4 +46,29 @@ generate_export_header(feynman EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/src/export
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
pkg_check_modules(WLROOTS REQUIRED IMPORTED_TARGET wlroots)
|
pkg_check_modules(WLROOTS REQUIRED IMPORTED_TARGET wlroots)
|
||||||
|
|
||||||
target_link_libraries(feynman PUBLIC PkgConfig::WLROOTS)
|
target_link_libraries(feynman PUBLIC
|
||||||
|
PkgConfig::WLROOTS)
|
||||||
|
|
||||||
|
# find Wayland protocols
|
||||||
|
pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir)
|
||||||
|
|
||||||
|
# find 'wayland-scanner' executable
|
||||||
|
pkg_get_variable(WAYLAND_SCANNER wayland-scanner wayland_scanner)
|
||||||
|
|
||||||
|
set(XDG_PROT_DEF "${WAYLAND_PROTOCOLS_DIR}/stable/xdg-shell/xdg-shell.xml")
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/xdg-shell-protocol.h
|
||||||
|
COMMAND ${WAYLAND_SCANNER} client-header ${XDG_PROT_DEF} xdg-shell-protocol.h)
|
||||||
|
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/xdg-shell-protocol.c
|
||||||
|
COMMAND ${WAYLAND_SCANNER} private-code ${XDG_PROT_DEF} xdg-shell-protocol.c
|
||||||
|
DEPENDS xdg-shell-protocol.h)
|
||||||
|
|
||||||
|
target_include_directories(feynman PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
target_sources(feynman PRIVATE xdg-shell-protocol.c)
|
||||||
|
|
||||||
|
find_package(Threads REQUIRED)
|
||||||
|
target_link_libraries(feynman PRIVATE Threads::Threads)
|
||||||
|
|
||||||
|
include_directories(SYSTEM ${WLROOTS_INCLUDE_DIRS})
|
||||||
|
|
Loading…
Reference in New Issue