Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # cmake -DCMAKE_BUILD_TYPE=release -G"MinGW Makefiles"
- # cmake -DCMAKE_BUILD_TYPE=release -G"Unix Makefiles"
- # cmake .
- cmake_minimum_required(VERSION 3.0.0)
- project(planet_centauri)
- # Set configuration in release by default
- if( NOT CMAKE_BUILD_TYPE )
- set( CMAKE_BUILD_TYPE "Release"
- CACHE STRING "Build configuration 'Release' or 'Debug'."
- FORCE )
- endif()
- if( NOT DEBUG_EXT )
- set( DEBUG_EXT 0 )
- endif()
- message(STATUS ${CMAKE_C_COMPILER_VERSION})
- message(STATUS ${CMAKE_CXX_COMPILER_VERSION})
- # optimize build time
- #set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
- # Set C++ flags
- string(APPEND CMAKE_CXX_FLAGS " -std=c++14")
- string(APPEND CMAKE_CXX_FLAGS " -Wall")
- string(APPEND CMAKE_CXX_FLAGS " -Wextra")
- #string(APPEND CMAKE_CXX_FLAGS " -Weffc++")
- string(APPEND CMAKE_CXX_FLAGS " -Wfatal-errors")
- string(APPEND CMAKE_CXX_FLAGS " -pedantic")
- string(APPEND CMAKE_CXX_FLAGS " -Wno-unused-parameter")
- string(APPEND CMAKE_CXX_FLAGS " -Wno-missing-braces")
- string(APPEND CMAKE_CXX_FLAGS " -Wno-sign-compare")
- string(APPEND CMAKE_CXX_FLAGS " -Werror=return-type")
- string(APPEND CMAKE_CXX_FLAGS " -ftemplate-depth=3000")
- #string(APPEND CMAKE_CXX_FLAGS_DEBUG " -O0")
- string(APPEND CMAKE_CXX_FLAGS_DEBUG " -Og")
- string(APPEND CMAKE_CXX_FLAGS_DEBUG " -ggdb")
- string(APPEND CMAKE_CXX_FLAGS_DEBUG " -fsanitize=undefined,address")
- string(APPEND CMAKE_CXX_FLAGS_DEBUG " -fno-omit-frame-pointer")
- string(APPEND CMAKE_CXX_FLAGS_DEBUG " -pg")
- if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
- string(APPEND CMAKE_CXX_FLAGS_RELEASE " -s")
- endif()
- #string(APPEND CMAKE_CXX_FLAGS_RELEASE " -gstabs") # for stack_trace
- string(APPEND CMAKE_CXX_FLAGS_RELEASE " -O2")
- if( DEBUG_EXT )
- string(APPEND CMAKE_CXX_FLAGS_DEBUG " -D_GLIBCXX_DEBUG")
- endif()
- include_directories(AFTER .)
- #if(UNIX)
- #set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -static-libgcc -static-libstdc++")
- #set(CMAKE_SKIP_BUILD_RPATH FALSE)
- #set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
- #set(CMAKE_INSTALL_RPATH "./lib")
- #set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
- #endif()
- # Linux specific definitions
- if(UNIX AND NOT APPLE)
- #add_definitions(-Wl,-rpath=./lib)
- #set(CMAKE_INSTALL_RPATH "$ORIGIN/../lib/linux64:$ORIGIN/")
- if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
- set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wl,-rpath=./lib/linux64")
- endif()
- link_directories(./lib/linux64)
- endif()
- # OSX specific definitions
- if(UNIX AND APPLE)
- link_directories(./lib/osx32)
- endif()
- # Windows specific definitions
- if(WIN32)
- string(APPEND CMAKE_CXX_FLAGS_RELEASE " -mwindows")
- include_directories(AFTER ./include/win32)
- link_directories(./lib/win32)
- endif()
- # OniDev2 setup
- include_directories(AFTER ../OniDev2/project/include)
- if( DEBUG_EXT )
- link_directories(../BuildOniDev2DebugExt/lib/)
- elseif( CMAKE_BUILD_TYPE EQUAL "Debug" )
- link_directories(../BuildOniDev2Debug/lib/)
- else() # Release
- link_directories(../BuildOniDev2Release/lib/)
- endif()
- # Import project files
- file(GLOB_RECURSE SOURCE_FILES ./*.hpp ./*.h ./*.cpp ./*.c)
- # Windows, MinGW - Set executable icon file
- set(RES_FILES "")
- if(MINGW)
- set(RES_FILES resource.rc)
- set(CMAKE_RC_COMPILER_INIT windres)
- ENABLE_LANGUAGE(RC)
- SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
- endif()
- add_executable(PlanetCentauri ${SOURCE_FILES} ${RES_FILES})
- find_package(OpenGL REQUIRED)
- find_package(OpenAL REQUIRED)
- find_package(Freetype REQUIRED)
- find_package(Threads REQUIRED)
- if(NOT WIN32)
- find_package(SDL2 REQUIRED)
- endif()
- set(FOUND_INCLUDES
- ${FREETYPE_INCLUDE_DIRS}
- ${OPENGL_INCLUDE_DIR}
- ${OPENAL_INCLUDE_DIR}
- )
- set(FOUND_LIBS
- onidev steam_api
- ${FREETYPE_LIBRARIES}
- ${OPENGL_gl_LIBRARY}
- ${OPENGL_glu_LIBRARY}
- ${OPENAL_LIBRARY}
- ${CMAKE_THREAD_LIBS_INIT}
- )
- if(WIN32)
- set(FOUND_LIBS ${FOUND_LIBS} ws2_32 wsock32 winmm gdi32 user32 kernel32)
- set(FOUND_LIBS ${FOUND_LIBS} sdl2 zlibstatic SteamWrapper liblua_static)
- else()
- set(FOUND_INCLUDES ${FOUND_INCLUDES} ${SDL2_INCLUDE_DIRS})
- set(FOUND_LIBS ${FOUND_LIBS} SDL2 z stdc++ m dl lua5.1)
- endif()
- #if(UNIX AND NOT APPLE)
- # set(FOUND_LIBS ${FOUND_LIBS} X11)
- #endif()
- include_directories(AFTER ${FOUND_INCLUDES})
- target_link_libraries(PlanetCentauri
- ${FOUND_LIBS}
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement