Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Travis build + Conan dependencies managment #73

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

DrBarbare
Copy link
Contributor

@DrBarbare DrBarbare commented Mar 2, 2019

Build Status

IMPORTANT: A Travis account will be needed to use the CI pipeline.

Features

  • Added a Conan configuration file to easily get SFML
  • Added Travis configuration (Ubuntu, OSX and Windows) with scripts to configure and build the project (no test stage)
  • Update the Readme to reflect changes in workflow
  • Minor changes in CMake configuration to support Conan
  • Fixes in CMake configuration revealed by Travis
  • Upgraded .gitignore

Known issues

  • Travis job does not run any tests at the moment, only builds

To test

Everything should be in the update documentation. You should still be able to work on the project without the need of Conan, it does make it easier.

matrix:
include:
- <<: *linux
env: DOCKER_IMAGE=lasote/conangcc8
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docker image are pulled from the bincrafters SFML configuration

@@ -56,7 +63,7 @@ if( SFGUI_INCLUDE_FONT )
target_compile_definitions( ${TARGET} PRIVATE SFGUI_INCLUDE_FONT )
endif()

target_link_libraries( ${TARGET} PUBLIC sfml-graphics sfml-window sfml-system ${OPENGL_gl_LIBRARY} )
target_link_libraries( ${TARGET} PUBLIC ${CONAN_LIBS} ${SFML_LIBRARIES} ${OPENGL_gl_LIBRARY} )
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using the fact that CMake evaluates non-existent variables to nothing.

@DrBarbare DrBarbare marked this pull request as ready for review March 2, 2019 04:29
CMakeLists.txt Outdated Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
@DrBarbare
Copy link
Contributor Author

@eXpl0it3r Sorry it took so long to do so simple things... How are the Travis scripts though? My coworkers say that I tend to over complicate things... Also is this account linked to Travis yet? @TankOs?

@DrBarbare DrBarbare force-pushed the feature/conan-dependencies-managment branch from 864ef05 to da5f850 Compare April 21, 2019 15:07
Added conan as an alternative dependencies getter.

Bumped release version.

Adding initial travis files, strongly inspired from bincrafters.

Add bincrafters repository to conan.

Adding docker interaction to travis

Trying to add debug output to travis file

Make travis docker image work from local directory

Running scripts in bash

Debuging docker exec steps

Adding bash in front of commands.

Run travis docker as root

Added travis badge.

Trying different std abi

Trying to get conan to use to correct ABI

Trying different stdlibc++ for osx

Fixed clang build call

Passing environment variables to docker scripts.

Fixed install.sh script.

Using libc++ with clang

Fixed typos in travis Yaml

Replaced libc++ from clang, it is not working.

Trying to build SFML

Trying to refactor travis scripts

Fixed typos in scripts

Fixed typo docker run -> docker exec

Linux seem to be working, trying OSX now.

Remove unbound policy for OSX

Also remove unbond in run script

Apple clang uses libc++ not libstdc++11

Fixed OSX library handling

Trying to do without pyenv

Typo in target linking cmake

Trying windows now.

Activating everything YOLO

Fixed typo in travis yaml

Trying different way to find the conan executable.

Still trying to find conan on Windows after choco install

Removed faulty printouts

Found Conan on windows

Fixed no docker invocation on windows

Too many conan in path

Fixed Windows conan profile

Remove libcxx from windows profile

Fixed typo in run.sh

Git commit trying to run everything in travis.

Cleaned the continuous integration scripts.

Updated Readme with new build system details

Bumped SFML version number

Reverted version upgrade change

Fixed CMakeLists style

Fixed bad manual revert
@@ -13,17 +13,24 @@ set( SFGUI_VERSION ${SFGUI_MAJOR_VERSION}.${SFGUI_MINOR_VERSION}.${SFGUI_REVISIO

### USER INPUT ###

option( SFGUI_BUILD_EXAMPLES "Build examples." ON )
option( SFGUI_BUILD_DOC "Generate API documentation." OFF )
option( SFGUI_INCLUDE_FONT "Include default font in library (DejaVuSans)." ON )
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reordered those so that the indentation still look nice.

@eXpl0it3r
Copy link
Collaborator

Totally forgot to check back here, been a while since I've touched SFGUI... 😓

As Travis CI is kind of dead (30 day trial with 10'000 credits) and given that GitHub has since added GitHub Actions, I've gone ahead and added a very basic script with #91

Would you be interested to change this PR (or create a new one) to adapt the conan integration with GitHub Actions instead of Travis CI?

@DrBarbare
Copy link
Contributor Author

Indeed. this has been quite a while. I didn't even realize Travis was not the hot stuff anymore (I mostly use Jenkins in professional settings). This PR should be closed then.

I don't think it would be worth my time to work on Conan integration for this project for a couple reason, first and foremost, my current occupation is very taxing, and I don't feel like spending extra time coding (or doing anything in front of a computer. Thanks to Zoomagedon). Second, I feel like using Conan directly in CMake is better when your project is the final item. For a project like SFGUI, it may be better to write a conanfile.py directly, that can then be used with conan create to easily make releases. I've had my team develop such packaging scripts for fairly complex neural network libraries with great success in deployment.

That being said, if there are other changes you think would benefit the project, and if SFGUI is getting some love back from you lovely maintainers, I will allocate a bit of my free time to port said changes.

Thank you for reaching out!

@eXpl0it3r
Copy link
Collaborator

Thanks for getting back to my comment. Might make sense to close the PR, but maybe you could PR the README changes (without the Conan bits), as I think it improves things quite a bit. Do you have time for that or shall I just copy it?

@DrBarbare
Copy link
Contributor Author

DrBarbare commented Mar 25, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants