From 3f857bb284d3c8aa99bcd61980e0f0cab2dd8e19 Mon Sep 17 00:00:00 2001 From: Aki Date: Thu, 7 Mar 2024 23:59:51 +0100 Subject: Added gtest to the project and a stub test for showcase --- cmake/modules/AddDatafile.cmake | 7 +++---- cmake/modules/GenerateEmulator.cmake | 21 +++++++++++++++++++++ cmake/modules/wine.sh.in | 5 +++++ 3 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 cmake/modules/GenerateEmulator.cmake create mode 100755 cmake/modules/wine.sh.in (limited to 'cmake/modules') diff --git a/cmake/modules/AddDatafile.cmake b/cmake/modules/AddDatafile.cmake index fd454b7..4badc0b 100644 --- a/cmake/modules/AddDatafile.cmake +++ b/cmake/modules/AddDatafile.cmake @@ -48,6 +48,7 @@ function(add_datafile DATAFILE_TARGET) COMMAND ${CMAKE_COMMAND} -E rm -f ${DATAFILE_OUTPUT} COMMENT "Creating datafile ${DATAFILE_TARGET}" ) + get_target_property(EMULATOR dat CROSSCOMPILING_EMULATOR) foreach(RESOURCE_TARGET IN ITEMS ${DATAFILE_RESOURCES}) get_property(RESOURCE_DIRECTORY TARGET ${RESOURCE_TARGET} PROPERTY RESOURCE_DIRECTORY) add_custom_command( @@ -56,8 +57,7 @@ function(add_datafile DATAFILE_TARGET) COMMAND ${CMAKE_COMMAND} -E chdir ${RESOURCE_DIRECTORY} ${CMAKE_COMMAND} -E env "${DATAFILE_VAR}='${DATAFILE_PATHS}'" - ${CMAKE_CROSSCOMPILING_EMULATOR} - $ -cu $ . + ${EMULATOR} $ -cu $ . ) endforeach() if(NOT DATAFILE_SKIP_SOURCE) @@ -73,8 +73,7 @@ function(add_datafile DATAFILE_TARGET) COMMAND ${CMAKE_COMMAND} -E chdir ${DATAFILE_SOURCE} ${CMAKE_COMMAND} -E env "${DATAFILE_VAR}='${DATAFILE_PATHS}'" - ${CMAKE_CROSSCOMPILING_EMULATOR} - $ -cu $ . + ${EMULATOR} $ -cu $ . ) endif() add_custom_target(${DATAFILE_TARGET} ALL DEPENDS ${DATAFILE_OUTPUT}) diff --git a/cmake/modules/GenerateEmulator.cmake b/cmake/modules/GenerateEmulator.cmake new file mode 100644 index 0000000..f25ae5f --- /dev/null +++ b/cmake/modules/GenerateEmulator.cmake @@ -0,0 +1,21 @@ +# Generates and attaches new emulator wrapper for a TARGET for use with tests and custom target jobs. + +set(GENERATE_EMULATOR_TEMPLATE "${CMAKE_CURRENT_LIST_DIR}/wine.sh.in") +if(CMAKE_CROSSCOMPILING) + function(generate_emulator TARGET) + cmake_parse_arguments(PARSE_ARGV 1 GENERATE_EMULATOR "" "" "LIBS") + set(WINE_PREFIX "$ENV{HOME}/.wine-${TOOLCHAIN_PREFIX}") + set(WINE_PATH "${CMAKE_FIND_ROOT_PATH}/bin") + foreach(LIB IN ITEMS ${GENERATE_EMULATOR_LIBS}) + get_target_property(DIR ${LIB} BINARY_DIR) + list(PREPEND WINE_PATH "${DIR}") + endforeach() + set(EMULATOR "${CMAKE_CURRENT_BINARY_DIR}/wine") + configure_file("${GENERATE_EMULATOR_TEMPLATE}" "${EMULATOR}" @ONLY) + set_target_properties(${TARGET} PROPERTIES CROSSCOMPILING_EMULATOR "${EMULATOR}") + endfunction() +else() + function(generate_emulator TARGET) + # no-op + endfunction() +endif() diff --git a/cmake/modules/wine.sh.in b/cmake/modules/wine.sh.in new file mode 100755 index 0000000..2a9be49 --- /dev/null +++ b/cmake/modules/wine.sh.in @@ -0,0 +1,5 @@ +#!/bin/sh -e +# See GenerateEmulator.cmake +export WINEPREFIX="@WINE_PREFIX@" +export WINEPATH="@WINE_PATH@" +exec /usr/bin/wine "$@" -- cgit v1.1