Test install interface
Skip Android, iOS, and Framework builds simply because I can't get them to work and don't want that holding up getting the rest of the install tests merged. Skip the Static DRM install test because there's a bug in the install that needs to be fixed.
This commit is contained in:
parent
8f54a3e97c
commit
e4f81af337
7
.github/workflows/ci.yml
vendored
7
.github/workflows/ci.yml
vendored
@ -101,6 +101,13 @@ jobs:
|
|||||||
files: ./build/coverage.out
|
files: ./build/coverage.out
|
||||||
fail_ci_if_error: true
|
fail_ci_if_error: true
|
||||||
|
|
||||||
|
- name: Test Install Interface
|
||||||
|
if: matrix.platform.name != 'Android' && matrix.config.name != 'Frameworks' && matrix.config.name != 'iOS' && matrix.config.name != 'Static DRM'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cmake -S $GITHUB_WORKSPACE/test/install -B $GITHUB_WORKSPACE/test/install/build -DSFML_ROOT=$GITHUB_WORKSPACE/install -DCMAKE_VERBOSE_MAKEFILE=ON ${{matrix.platform.flags}} ${{matrix.config.flags}} ${{matrix.type.flags}}
|
||||||
|
cmake --build $GITHUB_WORKSPACE/test/install/build --config ${{ matrix.type.name == 'Debug' && 'Debug' || 'Release' }}
|
||||||
|
|
||||||
format:
|
format:
|
||||||
name: Formatting on ${{ matrix.platform.name }}
|
name: Formatting on ${{ matrix.platform.name }}
|
||||||
runs-on: ${{ matrix.platform.os }}
|
runs-on: ${{ matrix.platform.os }}
|
||||||
|
@ -9,6 +9,8 @@ FetchContent_MakeAvailable(doctest)
|
|||||||
list(APPEND CMAKE_MODULE_PATH ${doctest_SOURCE_DIR}/scripts/cmake)
|
list(APPEND CMAKE_MODULE_PATH ${doctest_SOURCE_DIR}/scripts/cmake)
|
||||||
include(doctest)
|
include(doctest)
|
||||||
|
|
||||||
|
add_subdirectory(install)
|
||||||
|
|
||||||
add_library(sfml-test-main STATIC
|
add_library(sfml-test-main STATIC
|
||||||
DoctestMain.cpp
|
DoctestMain.cpp
|
||||||
TestUtilities/SystemUtil.hpp
|
TestUtilities/SystemUtil.hpp
|
||||||
|
15
test/install/CMakeLists.txt
Normal file
15
test/install/CMakeLists.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
project(test-sfml-install CXX)
|
||||||
|
|
||||||
|
# This skips the find_package call when building via add_subdirectory since that will fail under those circumstances
|
||||||
|
# It's a CMake 3.16-compatible replacement to PROJECT_IS_TOP_LEVEL
|
||||||
|
# https://cmake.org/cmake/help/latest/variable/PROJECT_IS_TOP_LEVEL.html
|
||||||
|
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
|
||||||
|
if(NOT BUILD_SHARED_LIBS)
|
||||||
|
set(SFML_STATIC_LIBRARIES TRUE)
|
||||||
|
endif()
|
||||||
|
find_package(SFML 3.0.0 EXACT CONFIG REQUIRED COMPONENTS Graphics Network Audio)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_executable(test-sfml-install Install.cpp)
|
||||||
|
target_link_libraries(test-sfml-install PRIVATE SFML::Graphics SFML::Network SFML::Audio)
|
37
test/install/Install.cpp
Normal file
37
test/install/Install.cpp
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#include <SFML/Audio.hpp>
|
||||||
|
#include <SFML/Graphics.hpp>
|
||||||
|
#include <SFML/Network.hpp>
|
||||||
|
|
||||||
|
// Instantiate some types from each module to test for linker issues. This program is not meant be ran.
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// Audio
|
||||||
|
sf::InputSoundFile input_sound_file;
|
||||||
|
sf::Listener listener;
|
||||||
|
sf::Music music;
|
||||||
|
sf::Sound sound;
|
||||||
|
|
||||||
|
// Graphics
|
||||||
|
sf::Color color;
|
||||||
|
sf::Font font;
|
||||||
|
sf::RenderWindow render_window;
|
||||||
|
sf::Sprite sprite;
|
||||||
|
sf::Vertex vertex;
|
||||||
|
|
||||||
|
// Network
|
||||||
|
sf::Ftp ftp;
|
||||||
|
sf::Http http;
|
||||||
|
sf::Packet packet;
|
||||||
|
sf::UdpSocket udp_socket;
|
||||||
|
|
||||||
|
// System
|
||||||
|
sf::Angle angle;
|
||||||
|
sf::FileInputStream file_input_stream;
|
||||||
|
sf::String string;
|
||||||
|
sf::Time time;
|
||||||
|
|
||||||
|
// Window
|
||||||
|
sf::Context context;
|
||||||
|
sf::VideoMode video_mode;
|
||||||
|
sf::Window window;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user