f8e57f921d
This is for simplifying the main src/Main/CMakeLists.txt file and allowing the code to be shared with the test suite. The generated source and header files have also been removed from the main source list and placed in the CMake module as the global variables EMBEDDED_RESOURCE_SOURCES and EMBEDDED_RESOURCE_HEADERS.
29 lines
1.5 KiB
CMake
29 lines
1.5 KiB
CMake
function(setup_fgfs_embedded_resources)
|
|
# The source and header files.
|
|
set(SOURCES
|
|
${CMAKE_BINARY_DIR}/src/EmbeddedResources/FlightGear-resources.cxx
|
|
)
|
|
set(HEADERS
|
|
${CMAKE_BINARY_DIR}/src/EmbeddedResources/FlightGear-resources.hxx
|
|
)
|
|
set_property(GLOBAL APPEND PROPERTY EMBEDDED_RESOURCE_SOURCES ${SOURCES})
|
|
set_property(GLOBAL APPEND PROPERTY EMBEDDED_RESOURCE_HEADERS ${HEADERS})
|
|
|
|
# On Windows, make sure fgrcc can be run (it needs third-party libraries)
|
|
if(MSVC)
|
|
if(MSVC_3RDPARTY_ROOT AND MSVC_3RDPARTY_DIR)
|
|
set(CMAKE_MSVCIDE_RUN_PATH ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/bin)
|
|
else()
|
|
message(FATAL_ERROR
|
|
"Either MSVC_3RDPARTY_ROOT or MSVC_3RDPARTY_DIR is empty or unset")
|
|
endif()
|
|
endif()
|
|
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_BINARY_DIR}/src/EmbeddedResources/FlightGear-resources.cxx
|
|
${CMAKE_BINARY_DIR}/src/EmbeddedResources/FlightGear-resources.hxx
|
|
COMMAND fgrcc --root=${CMAKE_SOURCE_DIR} --output-cpp-file=${CMAKE_BINARY_DIR}/src/EmbeddedResources/FlightGear-resources.cxx --init-func-name=initFlightGearEmbeddedResources --output-header-file=${CMAKE_BINARY_DIR}/src/EmbeddedResources/FlightGear-resources.hxx --output-header-identifier=_FG_FLIGHTGEAR_EMBEDDED_RESOURCES ${CMAKE_SOURCE_DIR}/src/EmbeddedResources/FlightGear-resources.xml
|
|
DEPENDS
|
|
fgrcc ${CMAKE_SOURCE_DIR}/src/EmbeddedResources/FlightGear-resources.xml
|
|
)
|
|
endfunction()
|