Co należy podać cmake'owi aby znalazł biblioteki SDL'owe w przypadku kross-kompilacji?
Zmontowałem sobie taki oto wsad dla kross-kompilacji opartej o toolchain Thorstena (i podaję go cmake'owi za pomocą flagi CMAKE_TOOLCHAIN_FILE):
SET(CMAKE_C_COMPILER m68k-atari-mint-gcc)
SET(CMAKE_CXX_COMPILER m68k-atari-mint-g++)
set(CMAKE_C_FLAGS "-m68020-60 -O3 -fomit-frame-pointer -funroll-loops -Wall -I/home/jury/sdl_stuff/include")
set(CMAKE_CXX_FLAGS "-m68020-60 -O3 -fomit-frame-pointer -funroll-loops -Wall -I/home/jury/sdl_stuff/include")
set(CMAKE_C_LINK_FLAGS "-L/usr/m68k-atari-mint/lib/m68020-60 -L/home/jury/sdl_stuff/lib/m68020-60 -lfreetype -lSDL_mixer -logg -lvorbis -lmikmod -lSDL -lSDL_image -lpng12 -ltiff -ljpeg -lgem -lm -lz")
set(CMAKE_CXX_LINK_FLAGS "-L/usr/m68k-atari-mint/lib/m68020-60 -L/home/jury/sdl_stuff/lib/m68020-60 -lfreetype -lSDL_mixer -logg -lvorbis -lmikmod -lSDL -lSDL_image -lpng12 -ltiff -ljpeg -lgem -lm -lz")
I to jak najbardziej działa dla projektów nieopartych na SDLu. Ale nie umiem wywołać cmake'a tak aby prawidłowo odnalazł port SDLa. Oczywiście jak w samym CMakeLists.txt zakomentuję sekcję wykrywającą SDL, czyli:
INCLUDE(FindSDL)
IF(SDL_FOUND)
MESSAGE(STATUS "Looking for SDL: found")
ELSE()
MESSAGE(SEND_ERROR "Looking for SDL: not found!")
MESSAGE(FATAL_ERROR "Please get it from www.libsdl.org")
ENDIF()
to cmake przejdzie wszystko prawidłowo a podczas kompilacji dostarczone ścieżki -I... oraz -L... i tak prawidłowo odnajdą co trzeba i projekt się skompiluje i zlinkuje OK. Ale chciałbym to zrobić bez takich haków (czyli identyczny problem jak miałem niedawno z configure'm)
Na razie jedyną sensownie wyglądającą opcją którą znalazłem w tym temacie jest przekazanie modułowi odpowiedzialnemu za wyszukiwanie SDL'a przez cmake, opcjonalnej wskazówki gdzie niby ma znajdować się SDL.h (czyli przez parametr SDL_INCLUDE_DIR):
https://cmake.org/cmake/help/latest/module/FindSDL.html
Ale to zupełnie nic nie wniosło.
Komenda którą wywołuję cmake:
cmake -DSDL_BACKEND=SDL -DSDL_INCLUDE_DIR=/home/jury/sdl_stuff/include/SDL -DCMAKE_TOOLCHAIN_FILE=/home/jury/sdl_stuff/m68k-atari-mint.cmake ..
Oczywiście jak puszczam ten sam cmake ale dla zbudowania linuksowej binarki, to cmake przechodzi wszystkie testy prawidłowo (nawet bez tej opcjonalnej wskazówki gdzie niby ma być ścieżka do SDL.h). Tak więc, co należy mu podać aby znalazł port SDLa?