# HG changeset patch # User Sebastien Jodogne # Date 1556548900 -7200 # Node ID f4b37a991dac4ac9c3d22a719bc61b6ecf9619ce # Parent d9c0a66304cbcf6d0c0a4f96dbb8e5a2edb10319 using glew to build on Windows diff -r d9c0a66304cb -r f4b37a991dac Framework/OpenGL/OpenGLIncludes.h --- a/Framework/OpenGL/OpenGLIncludes.h Mon Apr 29 15:29:53 2019 +0200 +++ b/Framework/OpenGL/OpenGLIncludes.h Mon Apr 29 16:41:40 2019 +0200 @@ -33,12 +33,8 @@ # include # include #elif defined(_WIN32) -// On Windows, use the compatibility headers provided by SDL -# if ORTHANC_ENABLE_SDL == 1 -# include -# else -# error Stone cannot be compiled on Windows without SDL -# endif +// On Windows, use the compatibility headers provided by glew +# include #else # include # include diff -r d9c0a66304cb -r f4b37a991dac Resources/CMake/SdlConfiguration.cmake --- a/Resources/CMake/SdlConfiguration.cmake Mon Apr 29 15:29:53 2019 +0200 +++ b/Resources/CMake/SdlConfiguration.cmake Mon Apr 29 16:41:40 2019 +0200 @@ -21,8 +21,15 @@ SET(SDL_SOURCES_DIR ${CMAKE_BINARY_DIR}/SDL2-2.0.4) SET(SDL_URL "http://orthanc.osimis.io/ThirdPartyDownloads/SDL2-2.0.4.tar.gz") SET(SDL_MD5 "44fc4a023349933e7f5d7a582f7b886e") + DownloadPackage(${SDL_MD5} ${SDL_URL} "${SDL_SOURCES_DIR}") - DownloadPackage(${SDL_MD5} ${SDL_URL} "${SDL_SOURCES_DIR}") + if (CMAKE_SYSTEM_NAME STREQUAL "Windows") + SET(GLEW_SOURCES_DIR ${CMAKE_BINARY_DIR}/glew-2.1.0) + SET(GLEW_URL "http://orthanc.osimis.io/ThirdPartyDownloads/glew-2.1.0.tgz") + SET(GLEW_MD5 "b2ab12331033ddfaa50dc39345343980") + DownloadPackage(${GLEW_MD5} ${GLEW_URL} "${GLEW_SOURCES_DIR}") + endif() + include_directories(${SDL_SOURCES_DIR}/include) @@ -150,8 +157,12 @@ ${SDL_SOURCES_DIR}/src/timer/windows/*.c ${SDL_SOURCES_DIR}/src/video/windows/*.c ${SDL_SOURCES_DIR}/src/windows/dlopen/*.c + + ${GLEW_SOURCES_DIR}/src/glew.c ) + include_directories(${GLEW_SOURCES_DIR}/include) + list(APPEND SDL_SOURCES ${TMP}) # NB: OpenGL ES headers are not available in MinGW-W64 @@ -166,6 +177,8 @@ -DSDL_VIDEO_RENDER_D3D=1 -DSDL_VIDEO_RENDER_OGL=1 -DSDL_VIDEO_DRIVER_WINDOWS=1 + + -DGLEW_STATIC=1 ) if (MSVC) diff -r d9c0a66304cb -r f4b37a991dac Samples/Sdl/BasicScene.cpp --- a/Samples/Sdl/BasicScene.cpp Mon Apr 29 15:29:53 2019 +0200 +++ b/Samples/Sdl/BasicScene.cpp Mon Apr 29 16:41:40 2019 +0200 @@ -348,7 +348,14 @@ } -int main() + + +/** + * IMPORTANT: The full arguments to "main()" are needed for SDL on + * Windows. Otherwise, one gets the linking error "undefined reference + * to `SDL_main'". https://wiki.libsdl.org/FAQWindows + **/ +int main(int argc, char* argv[]) { Orthanc::Logging::Initialize(); OrthancStone::SdlWindow::GlobalInitialize();