I'm running into linker errors when building the SFML example on Windows with MinGW. To me it seems like the platform sources isn't being linked properly and/or exported wrongly.
Here's the verbose output:
[ 99%] Linking CXX executable ..\..\..\bin\GworkSFML2Sample.exe
cd /d GWork\build\source\samples && cmake.exe -E cmake_link_script CMakeFiles\GworkSFML2Sample.dir\link.txt --verbose=1
cmake.exe -E remove -f CMakeFiles\GworkSFML2Sample.dir/objects.a
C:\Dev\MinGW64-PosixSEH610r0\bin\ar.exe cr CMakeFiles\GworkSFML2Sample.dir/objects.a @CMakeFiles\GworkSFML2Sample.dir\objects1.rsp
C:\Dev\MinGW64-PosixSEH610r0\bin\g++.exe -g -Wl,--whole-archive CMakeFiles\GworkSFML2Sample.dir/objects.a -Wl,--no-whole-archive -o ..\..\..\bin\GworkSFML2Sample.exe -Wl,--out-implib,..\..\..\lib\libGworkSFML2Sample.dll.a -Wl,--major-image-version,0,--minor-image-version,0 @CMakeFiles\GworkSFML2Sample.dir\linklibs.rsp
libGwork.a(Anim.cpp.obj): In function `Gwk::Anim::TimedAnimation::TimedAnimation(float, float, float)':
GWork/source/gwork/source/Anim.cpp:105: undefined reference to `Gwk::Platform::GetTimeInSeconds()'
libGwork.a(Anim.cpp.obj): In function `Gwk::Anim::TimedAnimation::Think()':
GWork/source/gwork/source/Anim.cpp:126: undefined reference to `Gwk::Platform::GetTimeInSeconds()'
libGwork.a(DragAndDrop.cpp.obj): In function `Gwk::UpdateHoveredControl(Gwk::Controls::Base*, int, int)':
GWork/source/gwork/source/DragAndDrop.cpp:190: undefined reference to `Gwk::Platform::SetCursor(unsigned char)'
libGwork.a(DragAndDrop.cpp.obj): In function `Gwk::DragAndDrop::OnMouseMoved(Gwk::Controls::Base*, int, int)':
GWork/source/gwork/source/DragAndDrop.cpp:229: undefined reference to `Gwk::Platform::SetCursor(unsigned char)'
libGwork.a(InputHandler.cpp.obj): In function `Gwk::Input::OnCanvasThink(Gwk::Controls::Base*)':
GWork/source/gwork/source/InputHandler.cpp:137: undefined reference to `Gwk::Platform::GetTimeInSeconds()'
GWork/source/gwork/source/InputHandler.cpp:150: undefined reference to `Gwk::Platform::GetTimeInSeconds()'
libGwork.a(InputHandler.cpp.obj): In function `Gwk::Input::OnMouseClicked(Gwk::Controls::Base*, int, bool)':
GWork/source/gwork/source/InputHandler.cpp:215: undefined reference to `Gwk::Platform::GetTimeInSeconds()'
GWork/source/gwork/source/InputHandler.cpp:222: undefined reference to `Gwk::Platform::GetTimeInSeconds()'
libGwork.a(InputHandler.cpp.obj): In function `Gwk::Input::OnKeyEvent(Gwk::Controls::Base*, int, bool)':
GWork/source/gwork/source/InputHandler.cpp:370: undefined reference to `Gwk::Platform::GetTimeInSeconds()'
libGwork.a(Base.cpp.obj): In function `Gwk::Controls::Base::UpdateCursor()':
GWork/source/gwork/source/Controls/Base.cpp:956: undefined reference to `Gwk::Platform::SetCursor(unsigned char)'
libGworkTest.a(Test.cpp.obj): In function `TestFrame::Render(Gwk::Skin::Base*)':
GWork/source/test/source/Test.cpp:33: undefined reference to `Gwk::Platform::GetTimeInSeconds()'
GWork/source/test/source/Test.cpp:36: undefined reference to `Gwk::Platform::GetTimeInSeconds()'
libGwork.a(ProgressBar.cpp.obj): In function `ProgressBarThink::Think()':
GWork/source/gwork/source/Controls/ProgressBar.cpp:27: undefined reference to `Gwk::Platform::GetTimeInSeconds()'
GWork/source/gwork/source/Controls/ProgressBar.cpp:29: undefined reference to `Gwk::Platform::GetTimeInSeconds()'
libGwork.a(TextBox.cpp.obj): In function `Gwk::Controls::TextBox::UpdateCaretColor()':
GWork/source/gwork/source/Controls/TextBox.cpp:94: undefined reference to `Gwk::Platform::GetTimeInSeconds()'
libGwork.a(TextBox.cpp.obj):GWork/source/gwork/source/Controls/TextBox.cpp:99: more undefined references to `Gwk::Platform::GetTimeInSeconds()' follow
libGwork.a(TextBox.cpp.obj): In function `Gwk::Controls::TextBox::OnPaste(Gwk::Controls::Base*)':
GWork/source/gwork/source/Controls/TextBox.cpp:154: undefined reference to `Gwk::Platform::GetClipboardText[abi:cxx11]()'
libGwork.a(TextBox.cpp.obj): In function `Gwk::Controls::TextBox::OnCopy(Gwk::Controls::Base*)':
GWork/source/gwork/source/Controls/TextBox.cpp:162: undefined reference to `Gwk::Platform::SetClipboardText(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
libGwork.a(TextBox.cpp.obj): In function `Gwk::Controls::TextBox::OnCut(Gwk::Controls::Base*)':
GWork/source/gwork/source/Controls/TextBox.cpp:170: undefined reference to `Gwk::Platform::SetClipboardText(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
Here's the content of linklib.rsp file which contain all the libs that are being linked.
../../../lib/libGwork.a ../../../lib/libGworkSFML2.a D:/Programming/C++/Contrib/SFML/install/lib/libsfml-system-d.a D:/Programming/C++/Contrib/SFML/install/lib/libsfml-window-d.a D:/Programming/C++/Contrib/SFML/install/lib/libsfml-window.a D:/Programming/C++/Contrib/SFML/install/lib/libsfml-graphics-d.a D:/Programming/C++/Contrib/SFML/install/lib/libsfml-graphics.a D:/Programming/C++/Contrib/SFML/install/lib/libfreetype.a D:/Programming/C++/Contrib/SFML/install/lib/libjpeg.a -lopengl32 -lwinmm -lgdi32 ../../../lib/libGworkTest.a ../../../lib/libGworkSFML2.a ../../../lib/libGwork.a -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
As you may notice, that libGworkSFML2 is being linked. Strangely enough they are linked twice though. But since it was linked I don't fully understand why the platform code isn't being found.
I'll try to play around with CMake a bit, but thought I report it and maybe you'd know something.