X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=CMakeLists.txt;h=b059ad378bce877b321b088417d1eb673c2ca3b2;hb=744211978eaf0cbcd9139d07b8dfd6f72651b39f;hp=e2b929f9652bf17b87c25f6cd809ce5e32c7f4c4;hpb=baf018a1b13e9488125b1420e493928ea7b544f9;p=libcds.git diff --git a/CMakeLists.txt b/CMakeLists.txt index e2b929f9..b059ad37 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,7 @@ cmake_minimum_required(VERSION 2.8.12) cmake_policy(SET CMP0016 NEW) +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build/cmake ${CMAKE_MODULE_PATH}) +include(TargetArch) project(cds) @@ -17,6 +19,8 @@ find_package(Boost 1.50 COMPONENTS system thread REQUIRED) include_directories(${Boost_INCLUDE_DIRS}) +target_architecture(CMAKE_TARGET_ARCHITECTURE) + if(WITH_BOOST_ATOMIC) if(${Boost_MINOR_VERSION} GREATER 53) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCDS_USE_BOOST_ATOMIC") @@ -75,21 +79,28 @@ if(NOT CMAKE_BUILD_TYPE) endif() if(CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -fno-strict-aliasing") -# gcc 4.8: disable noise -Wunused-local-typedefs - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedefs -Wno-unused-parameter") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -pedantic -fno-strict-aliasing") + if(CMAKE_TARGET_ARCHITECTURE STREQUAL "x86_64") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcx16") + endif() + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "7.0.0") +# gcc 4.8 - 6: disable noise -Wunused-local-typedefs + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedefs") + endif() endif() set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG") message("Build type -- ${CMAKE_BUILD_TYPE}") message("Compiler version: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}") -if (CMAKE_BUILD_TYPE MATCHES Debug) +MESSAGE("Target architecture: ${CMAKE_TARGET_ARCHITECTURE}") +if (CMAKE_BUILD_TYPE STREQUAL "DEBUG") message("Compiler flags: ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG}") else() message("Compiler flags: ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}") endif() +message("Boost: ${Boost_LIB_VERSION} in ${Boost_INCLUDE_DIRS}, lib ${Boost_LIBRARY_DIRS}") + include_directories(${PROJECT_SOURCE_DIR}) @@ -109,8 +120,10 @@ set(SOURCES src/hp_gc.cpp src/dllmain.cpp) add_library(${CDS_SHARED_LIBRARY} SHARED ${SOURCES}) -set_target_properties( ${CDS_SHARED_LIBRARY} PROPERTIES VERSION ${PROJECT_VERSION}) +set_target_properties( ${CDS_SHARED_LIBRARY} PROPERTIES VERSION ${PROJECT_VERSION} + DEBUG_POSTFIX "_d") add_library(${CDS_STATIC_LIBRARY} STATIC ${SOURCES}) +set_target_properties(${CDS_STATIC_LIBRARY} PROPERTIES DEBUG_POSTFIX "_d") target_link_libraries(${CDS_SHARED_LIBRARY} PRIVATE ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries(${CDS_STATIC_LIBRARY} PRIVATE ${CMAKE_THREAD_LIBS_INIT})