64 lines
1.7 KiB
CMake
64 lines
1.7 KiB
CMake
cmake_minimum_required (VERSION 3.15)
|
|
|
|
project (serialport)
|
|
|
|
set (ADMAKE_DISABLE_ADDRESS_SANITIZER ON)
|
|
|
|
include (CMakeListsPub)
|
|
|
|
set (TARGET_NAME ${CMAKE_PROJECT_NAME})
|
|
|
|
file (GLOB_RECURSE SRC
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp")
|
|
|
|
add_library (${TARGET_NAME}_OBJ OBJECT ${SRC})
|
|
|
|
if (APPLE)
|
|
|
|
elseif (ANDROID)
|
|
add_compile_options (-ffunction-sections -fdata-sections -fvisibility=hidden -Wl,--gc-sections)
|
|
elseif (UNIX)
|
|
|
|
elseif (WIN32)
|
|
# Disable the lib export by DLL
|
|
set (CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS OFF)
|
|
endif ()
|
|
|
|
target_include_directories (${TARGET_NAME}_OBJ
|
|
PUBLIC
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/include"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/source")
|
|
|
|
add_library (${TARGET_NAME} STATIC $<TARGET_OBJECTS:${TARGET_NAME}_OBJ>)
|
|
add_library (${TARGET_NAME}_SO SHARED $<TARGET_OBJECTS:${TARGET_NAME}_OBJ>)
|
|
|
|
if (WIN32)
|
|
set_target_properties (${TARGET_NAME}_SO PROPERTIES
|
|
OUTPUT_NAME "serialportdll")
|
|
target_link_libraries (${TARGET_NAME}_SO PUBLIC user32)
|
|
elseif (APPLE)
|
|
set (DEP_FRAMEWOKS Foundation)
|
|
|
|
macro (add_osx_framework target fwname)
|
|
find_library (FRAMEWORK_${fwname}
|
|
NAMES ${fwname}
|
|
PATHS ${CMAKE_OSX_SYSROOT}/System/Library
|
|
PATH_SUFFIXES Frameworks
|
|
NO_DEFAULT_PATH)
|
|
if (${FRAMEWORK_${fwname}} STREQUAL FRAMEWORK_${fwname}-NOTFOUND)
|
|
message (ERROR ": Framework ${fwname} not found")
|
|
else ()
|
|
message (STATUS "Framework ${fwname} found at ${FRAMEWORK_${fwname}}")
|
|
target_link_libraries (${target} "-framework ${fwname}")
|
|
endif ()
|
|
endmacro ()
|
|
|
|
foreach (framework ${DEP_FRAMEWOKS})
|
|
add_osx_framework (${TARGET_NAME}_SO ${framework})
|
|
endforeach ()
|
|
|
|
endif ()
|
|
|
|
if (DEFINED ADMAKE_BUILD_TEST)
|
|
endif ()
|