CMAKE_MINIMUM_REQUIRED(VERSION 2.8.6)
PROJECT(msgpack)

FILE(READ ${CMAKE_CURRENT_SOURCE_DIR}/include/msgpack/version_master.h contents)
STRING(
    REGEX
        MATCH
        "#define MSGPACK_VERSION_MAJOR *([0-9a-zA-Z_]*)"
        NULL_OUT
        ${contents}
)
SET(VERSION_MAJOR ${CMAKE_MATCH_1})
STRING(
    REGEX
        MATCH
        "#define MSGPACK_VERSION_MINOR *([0-9a-zA-Z_]*)"
        NULL_OUT
        ${contents}
)
SET(VERSION_MINOR ${CMAKE_MATCH_1})
STRING(
    REGEX
        MATCH
        "#define MSGPACK_VERSION_REVISION *([0-9a-zA-Z_]*)"
        NULL_OUT
        ${contents}
)
SET(VERSION_REVISION ${CMAKE_MATCH_1})
SET(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION})

SET(prefix ${CMAKE_INSTALL_PREFIX})
SET(exec_prefix "\${prefix}")
SET(libdir "\${exec_prefix}/lib")
SET(includedir "\${prefix}/include")
SET(GNUCXX_STD_SUPPORT_VERSION "4.3")
SET(GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION "4.4")

OPTION(MSGPACK_CXX11 "Using c++11 compiler" OFF)
OPTION(MSGPACK_32BIT "32bit compile" OFF)
OPTION(MSGPACK_BOOST "Using boost libraries" OFF)

SET(CMAKE_CXX_FLAGS "-DMSGPACK_DISABLE_LEGACY_NIL ${CMAKE_CXX_FLAGS}")
SET(CMAKE_CXX_FLAGS "-DMSGPACK_DISABLE_LEGACY_CONVERT ${CMAKE_CXX_FLAGS}")

IF(APPLE)
    SET(CMAKE_MACOSX_RPATH ON)
    SET(CMAKE_SKIP_BUILD_RPATH FALSE)
    SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
    SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
    SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
    LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
    IF("${isSystemDir}" STREQUAL "-1")
        SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
    ENDIF()
ENDIF()

IF(MSGPACK_CXX11)
    IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
        SET(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
    ELSEIF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
        SET(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
    ELSEIF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
        IF(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19)
            MESSAGE(FATAL_ERROR "MSVC doesn't support C++11.")
        ENDIF()
    ENDIF()
ELSE()
    IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
        IF(
            (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER ${GNUCXX_STD_SUPPORT_VERSION})
            OR (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL ${GNUCXX_STD_SUPPORT_VERSION})
        )
            SET(CMAKE_CXX_FLAGS "-std=c++03 ${CMAKE_CXX_FLAGS}")
        ENDIF()
    ELSEIF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
        SET(CMAKE_CXX_FLAGS "-std=c++03 ${CMAKE_CXX_FLAGS}")
    ELSEIF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
        IF(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 18)
            SET(CMAKE_CXX_FLAGS "-DMSGPACK_USE_CPP03 ${CMAKE_CXX_FLAGS}")
        ENDIF()
    ENDIF()
ENDIF()

IF(MSGPACK_32BIT)
    IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
        SET(CMAKE_CXX_FLAGS "-m32 ${CMAKE_CXX_FLAGS}")
        SET(CMAKE_C_FLAGS "-m32 ${CMAKE_C_FLAGS}")
        SET(CMAKE_EXE_LINKER_FLAGS "-m32 ${CMAKE_EXE_LINKER_FLAGS}")
    ELSEIF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
        SET(CMAKE_CXX_FLAGS "-m32 ${CMAKE_CXX_FLAGS}")
        SET(CMAKE_C_FLAGS "-m32 ${CMAKE_C_FLAGS}")
        SET(CMAKE_EXE_LINKER_FLAGS "-m32 ${CMAKE_EXE_LINKER_FLAGS}")
    ENDIF()
ENDIF()

IF(MSGPACK_BOOST)
    SET(CMAKE_CXX_FLAGS "-DMSGPACK_USE_BOOST ${CMAKE_CXX_FLAGS}")
    SET(Boost_USE_STATIC_LIBS ON) # only find static libs
    SET(Boost_USE_MULTITHREADED ON)
    SET(Boost_USE_STATIC_RUNTIME OFF)
    FIND_PACKAGE(Boost COMPONENTS chrono timer system)
    INCLUDE_DIRECTORIES(${MSGPACK_BOOST_DIR})
ENDIF()

IF(MSGPACK_CHAR_SIGN)
    SET(CMAKE_C_FLAGS "-f${MSGPACK_CHAR_SIGN}-char ${CMAKE_C_FLAGS}")
    SET(CMAKE_CXX_FLAGS "-f${MSGPACK_CHAR_SIGN}-char ${CMAKE_CXX_FLAGS}")
ENDIF()

FILE(
    GLOB_RECURSE PREDEF_FILES
    RELATIVE
        ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/predef/include/boost
        ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/predef/include/boost/*.h
)
FOREACH(F ${PREDEF_FILES})
    SET(M "Converting ${F}")
    MESSAGE(STATUS ${M})
    FILE(READ ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/predef/include/boost/${F} CONTENT)
    STRING(
        REPLACE
            "BOOST_"
            "MSGPACK_"
            CONTENT
            ${CONTENT}
    )
    STRING(
        REPLACE
            "boost/"
            "msgpack/"
            CONTENT
            ${CONTENT}
    )
    FILE(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/include/msgpack/${F} ${CONTENT})
ENDFOREACH()

FILE(
    GLOB_RECURSE PREPROCESSOR_FILES
    RELATIVE
        ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/preprocessor/include/boost
        ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/preprocessor/include/boost/*.hpp
)
FOREACH(F ${PREPROCESSOR_FILES})
    SET(M "Converting ${F}")
    MESSAGE(STATUS ${M})
    FILE(READ ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/preprocessor/include/boost/${F} CONTENT)
    STRING(
        REPLACE
            "BOOST_"
            "MSGPACK_"
            CONTENT
            ${CONTENT}
    )
    STRING(
        REPLACE
            "boost/"
            "msgpack/"
            CONTENT
            ${CONTENT}
    )
    FILE(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/include/msgpack/${F} ${CONTENT})
ENDFOREACH()

FIND_PACKAGE(GTest)
FIND_PACKAGE(ZLIB)
FIND_PACKAGE(Threads)
IF(GTEST_FOUND AND ZLIB_FOUND AND THREADS_FOUND)
    OPTION(MSGPACK_BUILD_TESTS "Build msgpack tests." ON)
ENDIF()
OPTION(MSGPACK_BUILD_EXAMPLES "Build msgpack examples." ON)

OPTION(MSGPACK_ENABLE_CXX "Enable C++ interface." ON)
OPTION(MSGPACK_ENABLE_SHARED "Build shared libaries in addition to static libraries." ON)

INCLUDE(CheckCXXSourceCompiles)
CHECK_CXX_SOURCE_COMPILES("
#include <bits/atomicity.h>
int atomic_sub(int i) { return __gnu_cxx::__exchange_and_add(&i, -1) - 1; }
int atomic_add(int i) { return __gnu_cxx::__exchange_and_add(&i, 1) + 1; }
int main(int argc, char * argv[])
{
    atomic_sub(1);
    atomic_add(1);
}
" MSGPACK_ENABLE_GCC_CXX_ATOMIC)

LIST(
    APPEND
        msgpackc_SOURCES
        src/unpack.c
        src/objectc.c
        src/version.c
        src/vrefbuffer.c
        src/zone.c
)

LIST(
    APPEND
        msgpackc_HEADERS
        include/msgpack/pack_define.h
        include/msgpack/pack_template.h
        include/msgpack/unpack_define.h
        include/msgpack/unpack_template.h
        include/msgpack/util.h
        include/msgpack/sysdep.h
        include/msgpack/gcc_atomic.h
        include/msgpack.h
        include/msgpack/sbuffer.h
        include/msgpack/version.h
        include/msgpack/version_master.h
        include/msgpack/vrefbuffer.h
        include/msgpack/zbuffer.h
        include/msgpack/fbuffer.h
        include/msgpack/pack.h
        include/msgpack/unpack.h
        include/msgpack/object.h
        include/msgpack/zone.h
)

FILE(
    GLOB_RECURSE PREDEF_FILES
    RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/include/msgpack/predef/*.h
)

LIST(APPEND msgpackc_HEADERS ${PREDEF_FILES})
LIST(APPEND msgpackc_HEADERS include/msgpack/predef.h)

IF(MSGPACK_ENABLE_CXX)
    LIST(
        APPEND
            msgpack_HEADERS
            include/msgpack.hpp
            include/msgpack/adaptor/adaptor_base.hpp
            include/msgpack/adaptor/array_ref.hpp
            include/msgpack/adaptor/bool.hpp
            include/msgpack/adaptor/boost/fusion.hpp
            include/msgpack/adaptor/boost/msgpack_variant.hpp
            include/msgpack/adaptor/boost/optional.hpp
            include/msgpack/adaptor/boost/string_ref.hpp
            include/msgpack/adaptor/char_ptr.hpp
            include/msgpack/adaptor/check_container_size.hpp
            include/msgpack/adaptor/cpp11/array.hpp
            include/msgpack/adaptor/cpp11/array_char.hpp
            include/msgpack/adaptor/cpp11/array_unsigned_char.hpp
            include/msgpack/adaptor/cpp11/forward_list.hpp
            include/msgpack/adaptor/cpp11/reference_wrapper.hpp
            include/msgpack/adaptor/cpp11/shared_ptr.hpp
            include/msgpack/adaptor/cpp11/tuple.hpp
            include/msgpack/adaptor/cpp11/unique_ptr.hpp
            include/msgpack/adaptor/cpp11/unordered_map.hpp
            include/msgpack/adaptor/cpp11/unordered_set.hpp
            include/msgpack/adaptor/define.hpp
            include/msgpack/adaptor/deque.hpp
            include/msgpack/adaptor/detail/cpp03_define_array.hpp
            include/msgpack/adaptor/detail/cpp03_define_map.hpp
            include/msgpack/adaptor/detail/cpp03_msgpack_tuple.hpp
            include/msgpack/adaptor/detail/cpp11_define_array.hpp
            include/msgpack/adaptor/detail/cpp11_define_map.hpp
            include/msgpack/adaptor/detail/cpp11_msgpack_tuple.hpp
            include/msgpack/adaptor/ext.hpp
            include/msgpack/adaptor/fixint.hpp
            include/msgpack/adaptor/float.hpp
            include/msgpack/adaptor/int.hpp
            include/msgpack/adaptor/list.hpp
            include/msgpack/adaptor/map.hpp
            include/msgpack/adaptor/msgpack_tuple.hpp
            include/msgpack/adaptor/nil.hpp
            include/msgpack/adaptor/pair.hpp
            include/msgpack/adaptor/raw.hpp
            include/msgpack/adaptor/v4raw.hpp
            include/msgpack/adaptor/set.hpp
            include/msgpack/adaptor/string.hpp
            include/msgpack/adaptor/tr1/unordered_map.hpp
            include/msgpack/adaptor/tr1/unordered_set.hpp
            include/msgpack/adaptor/vector.hpp
            include/msgpack/adaptor/vector_bool.hpp
            include/msgpack/adaptor/vector_char.hpp
            include/msgpack/adaptor/vector_unsigned_char.hpp
            include/msgpack/cpp_config.hpp
            include/msgpack/detail/cpp03_zone.hpp
            include/msgpack/detail/cpp11_zone.hpp
            include/msgpack/fbuffer.hpp
            include/msgpack/iterator.hpp
            include/msgpack/meta.hpp
            include/msgpack/object.hpp
            include/msgpack/object_fwd.hpp
            include/msgpack/pack.hpp
            include/msgpack/sbuffer.hpp
            include/msgpack/type.hpp
            include/msgpack/unpack.hpp
            include/msgpack/version.hpp
            include/msgpack/versioning.hpp
            include/msgpack/vrefbuffer.hpp
            include/msgpack/zbuffer.hpp
            include/msgpack/zone.hpp
    )
    FILE(
        GLOB_RECURSE PREPROCESSOR_FILES
        RELATIVE
            ${CMAKE_CURRENT_SOURCE_DIR}
            ${CMAKE_CURRENT_SOURCE_DIR}/include/msgpack/preprocessor/*.hpp
    )

    LIST(APPEND msgpackc_HEADERS ${PREPROCESSOR_FILES})
    LIST(APPEND msgpackc_HEADERS include/msgpack/preprocessor.hpp)
ENDIF()

EXECUTE_PROCESS(
    COMMAND
        ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src/msgpack
)

CONFIGURE_FILE(msgpack.pc.in msgpack.pc @ONLY)

INCLUDE_DIRECTORIES(./ include/ ${CMAKE_CURRENT_BINARY_DIR}/include/)

IF(MSGPACK_ENABLE_SHARED)
    ADD_LIBRARY(msgpackc SHARED ${msgpackc_SOURCES} ${msgpackc_HEADERS})
ENDIF()

ADD_LIBRARY(msgpackc-static STATIC ${msgpackc_SOURCES} ${msgpackc_HEADERS})

SET_TARGET_PROPERTIES(msgpackc-static PROPERTIES OUTPUT_NAME "msgpackc")
IF(MSGPACK_ENABLE_SHARED)
    SET_TARGET_PROPERTIES(msgpackc PROPERTIES IMPORT_SUFFIX "_import.lib")
    SET_TARGET_PROPERTIES(
        msgpackc
        PROPERTIES
            SOVERSION
            2
            VERSION
            2.0.0
    )
ENDIF()

IF(MSGPACK_BUILD_TESTS)
    ENABLE_TESTING()
    # MEMORYCHECK_COMMAND_OPTIONS needs to place prior to CTEST_MEMORYCHECK_COMMAND
    SET(
        MEMORYCHECK_COMMAND_OPTIONS
        "--leak-check=full --show-leak-kinds=definite,possible --error-exitcode=1"
    )
    FIND_PROGRAM(CTEST_MEMORYCHECK_COMMAND NAMES valgrind)
    INCLUDE(Dart)
    ADD_SUBDIRECTORY(test)
ENDIF()

IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
    IF(MSGPACK_ENABLE_SHARED)
        SET_PROPERTY(
            TARGET msgpackc
            APPEND_STRING
            PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3 -DPIC"
        )
    ENDIF()
    SET_PROPERTY(
        TARGET msgpackc-static
        APPEND_STRING
        PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3"
    )
ENDIF()

IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
    SET_PROPERTY(TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags")
ENDIF()

IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
    IF(
        (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION})
        OR (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION})
    )
        SET_PROPERTY(TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags")
    ENDIF()
ENDIF()

IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
    IF(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
        STRING(
            REGEX
            REPLACE
                "/W[0-4]"
                "/W3 /WX"
                CMAKE_CXX_FLAGS
                "${CMAKE_CXX_FLAGS}"
        )
    ELSE()
        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /WX")
    ENDIF()
ENDIF()

IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC90" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC10")
    SET_SOURCE_FILES_PROPERTIES(${msgpackc_SOURCES} PROPERTIES LANGUAGE CXX)
ENDIF()

IF(NOT DEFINED CMAKE_INSTALL_LIBDIR)
    SET(CMAKE_INSTALL_LIBDIR lib)
ENDIF()

IF(MSGPACK_BUILD_EXAMPLES)
    ADD_SUBDIRECTORY(example)
ENDIF()

IF(MSGPACK_ENABLE_SHARED)
    SET(MSGPACK_INSTALLTARGETS msgpackc msgpackc-static)
ELSE()
    SET(MSGPACK_INSTALLTARGETS msgpackc-static)
ENDIF()

INSTALL(TARGETS ${MSGPACK_INSTALLTARGETS} DESTINATION ${CMAKE_INSTALL_LIBDIR})
INSTALL(DIRECTORY include DESTINATION ${CMAKE_INSTALL_PREFIX})
IF(NOT MSVC)
    INSTALL(
        FILES ${CMAKE_CURRENT_BINARY_DIR}/msgpack.pc
        DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
    )
ENDIF()

# Doxygen
FIND_PACKAGE(Doxygen)
IF(DOXYGEN_FOUND)
    LIST(
        APPEND
            Doxyfile_c_CONTENT
            COMMAND
            ${CMAKE_COMMAND}
            -E
            copy
            ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile
            ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c
            COMMAND
            ${CMAKE_COMMAND}
            -E
            echo
            "FILE_PATTERNS      = *.h"
            >>
            ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c
            COMMAND
            ${CMAKE_COMMAND}
            -E
            echo
            "OUTPUT_DIRECTORY   = doc_c"
            >>
            ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c
            COMMAND
            ${CMAKE_COMMAND}
            -E
            echo
            "INPUT              = ${CMAKE_CURRENT_SOURCE_DIR}/include"
            >>
            ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c
            COMMAND
            ${CMAKE_COMMAND}
            -E
            echo
            "EXTRACT_ALL        = YES"
            >>
            ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c
            COMMAND
            ${CMAKE_COMMAND}
            -E
            echo
            "PROJECT_NAME       = \"MessagePack for C\""
            >>
            ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c
    )
    IF(DOXYGEN_DOT_FOUND)
        LIST(
            APPEND
                Doxyfile_c_CONTENT
                COMMAND
                ${CMAKE_COMMAND}
                -E
                echo
                "HAVE_DOT       = YES"
                >>
                ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c
        )
    ENDIF()
    ADD_CUSTOM_TARGET(
        doxygen_c ${Doxyfile_c_CONTENT}
        COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c
        VERBATIM
    )
    LIST(
        APPEND
            Doxyfile_cpp_CONTENT
            COMMAND
            ${CMAKE_COMMAND}
            -E
            copy
            ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile
            ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
            COMMAND
            ${CMAKE_COMMAND}
            -E
            echo
            "FILE_PATTERNS      = *.hpp"
            >>
            ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
            COMMAND
            ${CMAKE_COMMAND}
            -E
            echo
            "OUTPUT_DIRECTORY   = doc_cpp"
            >>
            ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
            COMMAND
            ${CMAKE_COMMAND}
            -E
            echo
            "INPUT              = ${CMAKE_CURRENT_SOURCE_DIR}/include"
            >>
            ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
            COMMAND
            ${CMAKE_COMMAND}
            -E
            echo
            "EXTRACT_ALL        = YES"
            >>
            ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
    )
    IF(DOXYGEN_DOT_FOUND)
        LIST(
            APPEND
                Doxyfile_cpp_CONTENT
                COMMAND
                ${CMAKE_COMMAND}
                -E
                echo
                "HAVE_DOT       = YES"
                >>
                ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
        )
    ENDIF()
    ADD_CUSTOM_TARGET(
        doxygen_cpp ${Doxyfile_cpp_CONTENT}
        COMMAND
            ${CMAKE_COMMAND} -E echo "PROJECT_NAME       = \"MessagePack for C++\"" >>
            ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
        COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
        VERBATIM
    )
    ADD_CUSTOM_TARGET(doxygen DEPENDS doxygen_c doxygen_cpp)
ENDIF()
