cmake_minimum_required(VERSION 2.8.11)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)

option(ENABLE_AMD_EXTENSIONS "Enables support of AMD-specific extensions" OFF)

enable_testing()

set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix")

project(glslang)

if(ENABLE_AMD_EXTENSIONS)
    add_definitions(-DAMD_EXTENSIONS)
endif(ENABLE_AMD_EXTENSIONS)

if(WIN32)
    set(CMAKE_DEBUG_POSTFIX "d")
    include(ChooseMSVCCRT.cmake)
    add_definitions(-DGLSLANG_OSINCLUDE_WIN32)
elseif(UNIX)
    add_definitions(-fPIC)
    add_definitions(-DGLSLANG_OSINCLUDE_UNIX)
else(WIN32)
    message("unknown platform")
endif(WIN32)

if(CMAKE_COMPILER_IS_GNUCXX)
    add_definitions(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs
      -Wunused-parameter -Wunused-value  -Wunused-variable -Wunused-but-set-parameter -Wunused-but-set-variable)
    add_definitions(-Wno-reorder)  # disable this from -Wall, since it happens all over.
    add_definitions(-std=c++11)
elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
    add_definitions(-Wall -Wuninitialized -Wunused -Wunused-local-typedefs
      -Wunused-parameter -Wunused-value  -Wunused-variable)
    add_definitions(-Wno-reorder)  # disable this from -Wall, since it happens all over.
    add_definitions(-std=c++11)
endif()

function(glslang_set_link_args TARGET)
    # For MinGW compiles, statically link against the GCC and C++ runtimes.
    # This avoids the need to ship those runtimes as DLLs.
    if(WIN32)
	if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
	    set_target_properties(${TARGET} PROPERTIES
		    LINK_FLAGS "-static -static-libgcc -static-libstdc++")
        endif()
    endif(WIN32)
endfunction(glslang_set_link_args)

# We depend on these for later projects, so they should come first.
add_subdirectory(External)

add_subdirectory(glslang)
add_subdirectory(OGLCompilersDLL)
add_subdirectory(StandAlone)
add_subdirectory(SPIRV)
add_subdirectory(hlsl)
add_subdirectory(gtests)
