Sign in to follow this  
Christofer Padilla

CMake assets

Recommended Posts

I'm working on a game using the SDL library and I'm trying to load an image to display on the screen. Since I started using cmake to build my project, I can't get the image to load. I think this is a problem with the assets folder/images not being included with the project when it gets built. How should my CMake look if I wanted to include an assets folder with a game project so it can be loaded locally, ex: load_image("spritesheet.bmp")?

Share this post


Link to post
Share on other sites
Um, not an expert on CMake, but do you mean deployed via CMake-generated make install? Or that you cannot load an image from your development environment?

If it is the first, you might want to take a look at[url="http://www.cmake.org/Wiki/CMake:Install_Commands"] how the installation process is managed[/url], and thus just copy your assets on installation.

If it is the second, you need to provide more context. Why are images not loading? Is there some error message?

Another problem might be that your files are in the source code directory, and cmake generates object files and executables in a separate directory. For this age-old problem, you will simply need to [url="http://cmake.3232098.n2.nabble.com/CMake-copy-files-when-they-change-to-build-dir-td3404630.html"]copy [/url]your assets to the binary directory.

Share this post


Link to post
Share on other sites
Hey thanks for the reply. I've basically setup my build environment alright, since it builds on windows and Linux right now. It was probably my fault for not providing some more context but my problem was that the images weren't loading. This was because none of the images in the assets folder I set up were being included when I built the project through cmake.

So really I think I may just need to copy them over, as you suggested. I'll try it again tomorrow and I'll update on how it goes.

Share this post


Link to post
Share on other sites
Woohoo! It worked! First of all it turns out that it wasn't displaying the image because [url="http://stackoverflow.com/questions/2573349/c-how-can-i-use-sdl-to-load-a-bitmap-into-a-cube-in-opengl?rq=1"]SDL only likes 24-bit bmps[/url]. So I used the cmake copy command to include all the images in my assets folder using something like this:
[source lang="plain"]
foreach(asset ${ASSETS})
file(COPY ${asset} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/assets)
endforeach(asset)
[/source]

Thanks for all the help!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this