-
-
Save anonymous/5c4b9c2c42a4e3db4357 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"C:\Program Files (x86)\JetBrains\CLion 138.2344.17\bin\cmake\bin\cmake.exe" --build C:\Users\Kyle\.clion10\system\cmake\generated\7d808785\7d808785\Debug --target OpenGL -- -j 4 | |
Scanning dependencies of target OpenGL | |
[100%] Building CXX object CMakeFiles/OpenGL.dir/Source/main.cpp.obj | |
Linking CXX executable OpenGL.exe | |
D:\Programming\Projects\CLion\OpenGL\Libraries\SDL2-2.0.3\lib\x64\SDL2main.lib(./x64/Release/SDL_windows_main.obj):(.text[main]+0x0): multiple definition of `main' | |
D:/Software/Programs/MinGW/w64/x86_64-4.9.1-posix-seh-rt_v3-rev1.7/bin/../lib/gcc/x86_64-w64-mingw32/4.9.1/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x0): first defined here | |
Warning: corrupt .drectve at end of def file | |
collect2.exe: error: ld returned 1 exit status | |
CMakeFiles\OpenGL.dir\build.make:88: recipe for target 'OpenGL.exe' failed | |
mingw32-make.exe[3]: *** [OpenGL.exe] Error 1 | |
CMakeFiles\Makefile2:59: recipe for target 'CMakeFiles/OpenGL.dir/all' failed | |
mingw32-make.exe[2]: *** [CMakeFiles/OpenGL.dir/all] Error 2 | |
CMakeFiles\Makefile2:71: recipe for target 'CMakeFiles/OpenGL.dir/rule' failed | |
mingw32-make.exe[1]: *** [CMakeFiles/OpenGL.dir/rule] Error 2 | |
mingw32-make.exe: *** [OpenGL] Error 2 | |
Makefile:146: recipe for target 'OpenGL' failed |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CMAKE_MINIMUM_REQUIRED(VERSION 2.6) | |
PROJECT(OpenGL) | |
# Use our modified FindSDL2* modules | |
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) | |
MESSAGE("#CMake Module Path: '{CMAKE_MODULE_PATH}'") | |
# Set an output directory for our binaries | |
SET(BIN_DIR {CMAKE_SOURCE_DIR}/Bin) | |
SET(PROJECT_BINARY_DIR ${CMAKE_SOURCE_DIR}/Binaries) | |
# Bump up warning levels appropriately for clang, gcc & msvc | |
# Also set debug/optimization flags depending on the build type. IDE users choose this when | |
# selecting the build mode in their IDE | |
IF (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") | |
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -std=c++11") | |
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -std=c++11") | |
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -g") | |
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O2") | |
ELSEIF (${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC") | |
IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]") | |
STRING(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") | |
ELSE() | |
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") | |
ENDIF() | |
ENDIF() | |
# Look up SDL2 and add the include directory to our include path | |
FIND_PACKAGE(SDL2 REQUIRED) | |
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIR}) | |
ADD_EXECUTABLE(OpenGL Source/main.cpp) | |
TARGET_LINK_LIBRARIES(OpenGL ${SDL2_LIBRARY}) | |
install(TARGETS OpenGL RUNTIME DESTINATION ${BIN_DIR}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#without the set line it only searches for .dll and .a | |
#SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll" ".a") | |
MESSAGE("## Library suffixes are: ${CMAKE_FIND_LIBRARY_SUFFIXES}") | |
FIND_PATH(SDL2_INCLUDE_DIR SDL.h | |
HINTS | |
$ENV{SDL2} | |
PATH_SUFFIXES include/SDL2 include SDL2 | |
include/SDL2 include | |
i686-w64-mingw32/include/SDL2 | |
x86_64-w64-mingw32/include/SDL2 | |
include | |
PATHS | |
~/Library/Frameworks | |
/Library/Frameworks | |
/usr/local/include/SDL2 | |
/usr/include/SDL2 | |
/sw # Fink | |
/opt/local # DarwinPorts | |
/opt/csw # Blastwave | |
/opt | |
${CMAKE_SOURCE_DIR}/Libraries/SDL2-2.0.3/ | |
) | |
MESSAGE("## SDL2_INCLUDE_DIR is '${SDL2_INCLUDE_DIR}'") | |
# Lookup the 64 bit libs on x64 | |
IF(CMAKE_SIZEOF_VOID_P EQUAL 8) | |
MESSAGE("## Lookup the x64 libs") | |
FIND_LIBRARY(SDL2_LIBRARY_TEMP SDL2 | |
HINTS | |
$ENV{SDL2} | |
PATH_SUFFIXES lib64 lib | |
lib/x64 | |
x86_64-w64-mingw32/lib | |
PATHS | |
/sw | |
/opt/local | |
/opt/csw | |
/opt | |
${CMAKE_SOURCE_DIR}/Libraries/SDL2-2.0.3/ | |
) | |
# On 32bit build find the 32bit libs | |
ELSE(CMAKE_SIZEOF_VOID_P EQUAL 4) | |
FIND_LIBRARY(SDL2_LIBRARY_TEMP SDL2 | |
HINTS | |
$ENV{SDL2} | |
PATH_SUFFIXES lib | |
lib/x86 | |
i686-w64-mingw32/lib | |
PATHS | |
/sw | |
/opt/local | |
/opt/csw | |
/opt | |
${CMAKE_SOURCE_DIR}/Libraries/SDL2-2.0.3/ | |
) | |
ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8) | |
MESSAGE("SDL2_LIBRARY_TEMP is '${SDL2_LIBRARY_TEMP}'") | |
IF(NOT SDL2_BUILDING_LIBRARY) | |
IF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework") | |
# Non-OS X framework versions expect you to also dynamically link to | |
# SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms | |
# seem to provide SDL2main for compatibility even though they don't | |
# necessarily need it. | |
# Lookup the 64 bit libs on x64 | |
IF(CMAKE_SIZEOF_VOID_P EQUAL 8) | |
FIND_LIBRARY(SDL2MAIN_LIBRARY | |
NAMES SDL2main | |
HINTS | |
$ENV{SDL2} | |
PATH_SUFFIXES lib64 lib | |
lib/x64 | |
x86_64-w64-mingw32/lib | |
PATHS | |
/sw | |
/opt/local | |
/opt/csw | |
/opt | |
${CMAKE_SOURCE_DIR}/Libraries/SDL2-2.0.3/ | |
) | |
# On 32bit build find the 32bit libs | |
ELSE(CMAKE_SIZEOF_VOID_P EQUAL 4) | |
FIND_LIBRARY(SDL2MAIN_LIBRARY | |
NAMES SDL2main | |
HINTS | |
$ENV{SDL2} | |
PATH_SUFFIXES lib | |
lib/x86 | |
i686-w64-mingw32/lib | |
PATHS | |
/sw | |
/opt/local | |
/opt/csw | |
/opt | |
${CMAKE_SOURCE_DIR}/Libraries/SDL2-2.0.3/ | |
) | |
ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8) | |
ENDIF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework") | |
ENDIF(NOT SDL2_BUILDING_LIBRARY) | |
# SDL2 may require threads on your system. | |
# The Apple build may not need an explicit flag because one of the | |
# frameworks may already provide it. | |
# But for non-OSX systems, I will use the CMake Threads package. | |
IF(NOT APPLE) | |
FIND_PACKAGE(Threads) | |
ENDIF(NOT APPLE) | |
# MinGW needs an additional library, mwindows | |
# It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -lmwindows | |
# (Actually on second look, I think it only needs one of the m* libraries.) | |
IF(MINGW) | |
SET(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW") | |
ENDIF(MINGW) | |
SET(SDL2_FOUND "NO") | |
IF(SDL2_LIBRARY_TEMP) | |
# For SDL2main | |
IF(NOT SDL2_BUILDING_LIBRARY) | |
IF(SDL2MAIN_LIBRARY) | |
SET(SDL2_LIBRARY_TEMP ${SDL2MAIN_LIBRARY} ${SDL2_LIBRARY_TEMP}) | |
ENDIF(SDL2MAIN_LIBRARY) | |
ENDIF(NOT SDL2_BUILDING_LIBRARY) | |
# For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa. | |
# CMake doesn't display the -framework Cocoa string in the UI even | |
# though it actually is there if I modify a pre-used variable. | |
# I think it has something to do with the CACHE STRING. | |
# So I use a temporary variable until the end so I can set the | |
# "real" variable in one-shot. | |
IF(APPLE) | |
SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} "-framework Cocoa") | |
ENDIF(APPLE) | |
# For threads, as mentioned Apple doesn't need this. | |
# In fact, there seems to be a problem if I used the Threads package | |
# and try using this line, so I'm just skipping it entirely for OS X. | |
IF(NOT APPLE) | |
SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} ${CMAKE_THREAD_LIBS_INIT}) | |
ENDIF(NOT APPLE) | |
# For MinGW library | |
IF(MINGW) | |
SET(SDL2_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL2_LIBRARY_TEMP}) | |
ENDIF(MINGW) | |
# Set the final string here so the GUI reflects the final state. | |
SET(SDL2_LIBRARY ${SDL2_LIBRARY_TEMP} CACHE STRING "Where the SDL2 Library can be found") | |
# Set the temp variable to INTERNAL so it is not seen in the CMake GUI | |
SET(SDL2_LIBRARY_TEMP "${SDL2_LIBRARY_TEMP}" CACHE INTERNAL "") | |
SET(SDL2_FOUND "YES") | |
ENDIF(SDL2_LIBRARY_TEMP) | |
INCLUDE(FindPackageHandleStandardArgs) | |
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include "SDL.h" | |
int main(int argc, char *argv[]) { | |
if (SDL_Init(SDL_INIT_EVERYTHING) != 0) { | |
std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl; | |
return 1; | |
} | |
SDL_Quit(); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment