set(PROJECT_NAME mb) ################################################################################ # Source groups ################################################################################ set(Header_Files "Circuit.h" "MbModule.h" "MbPools.h" "MediaEndpt.h" "MediaFailureEvent.h" "MediaParameter.h" "MediaPsm.h" "MediaSsm.h" "Switch.h" "ToneRegistry.h" "Tones.h" ) source_group("Header Files" FILES ${Header_Files}) set(Source_Files "Circuit.cpp" "MbModule.cpp" "MbPools.cpp" "MediaEndpt.cpp" "MediaFailureEvent.cpp" "MediaParameter.cpp" "MediaPsm.cpp" "MediaSsm.cpp" "Switch.cpp" "ToneRegistry.cpp" "Tones.cpp" ) source_group("Source Files" FILES ${Source_Files}) set(ALL_FILES ${Header_Files} ${Source_Files} ) ################################################################################ # Target ################################################################################ add_library(${PROJECT_NAME} STATIC ${ALL_FILES}) use_props(${PROJECT_NAME} "${CMAKE_CONFIGURATION_TYPES}" "${DEFAULT_CXX_PROPS}") set(ROOT_NAMESPACE mb) if(MSVC) set_target_properties(${PROJECT_NAME} PROPERTIES VS_GLOBAL_KEYWORD "Win32Proj" ) set_target_properties(${PROJECT_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE "TRUE" ) endif() ################################################################################ # Include directories ################################################################################ target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../nb;" "${CMAKE_CURRENT_SOURCE_DIR}/../nw;" "${CMAKE_CURRENT_SOURCE_DIR}/../sb" ) ################################################################################ # Compile definitions ################################################################################ if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "ARM") target_compile_definitions(${PROJECT_NAME} PRIVATE "$<$:" "_DEBUG" ">" "$<$:" "NDEBUG" ">" "WIN32;" "_LIB;" "UNICODE;" "_UNICODE" ) elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") if(MSVC) target_compile_definitions(${PROJECT_NAME} PRIVATE "$<$:" "_DEBUG" ">" "$<$:" "NDEBUG" ">" "_LIB;" "UNICODE;" "_UNICODE" ) endif() elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") target_compile_definitions(${PROJECT_NAME} PRIVATE "$<$:" "_DEBUG" ">" "$<$:" "NDEBUG" ">" "WIN32;" "_LIB;" "UNICODE;" "_UNICODE" ) endif() ################################################################################ # Compile and link options ################################################################################ if(MSVC) target_compile_options(${PROJECT_NAME} PRIVATE $<$: /Oi; /Gy > ) target_link_options(${PROJECT_NAME} PRIVATE $<$: /OPT:REF; /OPT:NOICF > /SUBSYSTEM:WINDOWS ) endif() ################################################################################ # Dependencies ################################################################################ # Link with other targets. target_link_libraries(${PROJECT_NAME} PUBLIC nb nw sb )