cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
project(demumble C CXX)

# TODO: Also do this for gcc once gcc 4.9 is common.
if (${UNIX} AND ${CMAKE_GENERATOR} STREQUAL "Ninja" AND
    ${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color -Wall")
endif()

# 10.9 chosen somewhat arbitrary; it's the first target where clang defaults
# to libc++ and ld64 defaults to stripping __TEXT,__eh_frame.
if (APPLE)
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.9")
endif()

# This is apparently the simplest way to statically link the CRT in CMake:
if (WIN32)
  string(TOUPPER "${CMAKE_BUILD_TYPE}" build)
  set(flag_var "CMAKE_CXX_FLAGS_${build}")
  if(${flag_var} MATCHES "/MD")
    string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
  endif()
endif()

include_directories(third_party/llvm/include)
add_executable(demumble
               demumble.cc
               third_party/llvm/lib/Demangle/ItaniumDemangle.cpp
               third_party/llvm/lib/Demangle/MicrosoftDemangle.cpp
               third_party/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp
)
set_target_properties(demumble PROPERTIES CXX_STANDARD 11
                                          CXX_STANDARD_REQUIRED ON)
