project(multithread_experiments) cmake_minimum_required(VERSION 2.8.6) set(CMAKE_CXX_STANDART 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) option(USE_SMSDK "Use libraries from SMSDK directory" 1) if(USE_SMSDK) set(PATH_TO_SMSDK $ENV{SMSDK_DIR}) set(SM_BIN_DIR $ENV{SM_BIN_DIR}) set(PIP_DIR ${PATH_TO_SMSDK}) set(SMBRICKS_INCLUDES ${PATH_TO_SMSDK}/include/SMBricks) set(SMBRICKS_LIB_DIR ${PATH_TO_SMSDK}/lib) endif() find_package(PIP REQUIRED) find_package(QAD REQUIRED) if (CMAKE_BUILD_TYPE MATCHES Debug) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3 -fPIC -std=c++11") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3 -fPIC") else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -fPIC -std=c++11") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -fPIC") endif() include_directories(experiments ${PIP_INCLUDES}) if(WIN32) include_directories(can) add_subdirectory(can) add_custom_target(copy_dependencies COMMAND ${CMAKE_COMMAND} -E copy ${PCAN_LIB} ${CMAKE_CURRENT_BINARY_DIR}/PCANBasic${CMAKE_SHARED_LIBRARY_SUFFIX} COMMAND ${CMAKE_COMMAND} -E copy ${VSCAN_LIB} ${CMAKE_CURRENT_BINARY_DIR}/vs_can_api${CMAKE_SHARED_LIBRARY_SUFFIX}) add_executable(can_send_multithread experiments/can_send_multithread.cpp) target_link_libraries(can_send_multithread can) add_dependencies(can_send_multithread copy_dependencies) add_executable(can_send experiments/can_send.cpp) target_link_libraries(can_send can) add_dependencies(can_send copy_dependencies) endif() add_executable(mutex experiments/mutex.cpp) target_link_libraries(mutex ${PIP_LIBRARY} ${PIP_CONCURRENT_LIBRARY}) add_executable(mutex_multithread experiments/mutex_multithread.cpp) target_link_libraries(mutex_multithread ${PIP_LIBRARY} ${PIP_CONCURRENT_LIBRARY})