Compare commits
No commits in common. "79492c84648d5c001474879240dd3062a74d5519" and "02b4763525329590b1a3ae1bf3402547d9c28509" have entirely different histories.
79492c8464
...
02b4763525
@ -12,13 +12,13 @@ include(CMakePushCheckState)
|
||||
include(CheckCXXCompilerFlag)
|
||||
|
||||
if(NOT DEFINED USE_QUADMATH OR USE_QUADMATH)
|
||||
# if(NOT DEFINED HAVE_EXTENDED_NUMERIC_LITERALS)
|
||||
# check_cxx_compiler_flag("-Werror -fext-numeric-literals" HAVE_EXTENDED_NUMERIC_LITERALS)
|
||||
# endif()
|
||||
if(NOT DEFINED HAVE_EXTENDED_NUMERIC_LITERALS)
|
||||
check_cxx_compiler_flag("-Werror -fext-numeric-literals" HAVE_EXTENDED_NUMERIC_LITERALS)
|
||||
endif()
|
||||
|
||||
# if (HAVE_EXTENDED_NUMERIC_LITERALS)
|
||||
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fext-numeric-literals")
|
||||
# endif()
|
||||
if (HAVE_EXTENDED_NUMERIC_LITERALS)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fext-numeric-literals")
|
||||
endif()
|
||||
|
||||
cmake_push_check_state(RESET)
|
||||
list(APPEND CMAKE_REQUIRED_LIBRARIES "quadmath")
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Создание динамической библиотеки из объектной библиотеки
|
||||
function(myx_cmake_add_shared_library target)
|
||||
get_target_property(__target_type ${target} TYPE)
|
||||
if(NOT __target_type STREQUAL OBJECT_LIBRARY)
|
||||
get_target_property(_target_type ${target} TYPE)
|
||||
if(NOT _target_type STREQUAL OBJECT_LIBRARY)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"MyxCMake: myx_cmake_add_shared_library needs target of type OBJECT_LIBRARY")
|
||||
"MyxCMake: add_shared_library needs target of type OBJECT_LIBRARY")
|
||||
return()
|
||||
endif()
|
||||
|
||||
@ -16,8 +16,6 @@ function(myx_cmake_add_shared_library target)
|
||||
SOVERSION ${PROJECT_VERSION_MAJOR}
|
||||
LIBRARY_OUTPUT_DIRECTORY
|
||||
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
|
||||
install(TARGETS ${target}-shared
|
||||
COMPONENT main
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(TARGETS ${target}-static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
endfunction()
|
||||
|
@ -1,20 +1,19 @@
|
||||
# Создание статической библиотеки из объектной библиотеки
|
||||
function(myx_cmake_add_static_library target)
|
||||
get_target_property(__target_type ${target} TYPE)
|
||||
if(NOT __target_type STREQUAL OBJECT_LIBRARY)
|
||||
get_target_property(_target_type ${target} TYPE)
|
||||
if(NOT _target_type STREQUAL OBJECT_LIBRARY)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"MyxCMake: myx_cmake_add_static_library needs target of type OBJECT_LIBRARY")
|
||||
"MyxCMake: add_static_library needs target of type OBJECT_LIBRARY")
|
||||
return()
|
||||
endif()
|
||||
|
||||
add_library(${target}-static STATIC $<TARGET_OBJECTS:${target}>)
|
||||
set_target_properties(${target}-static
|
||||
PROPERTIES
|
||||
OUTPUT_NAME ${target}
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
|
||||
install(TARGETS ${target}-static
|
||||
COMPONENT static
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
set_target_properties(
|
||||
${target}-static
|
||||
PROPERTIES OUTPUT_NAME ${target}
|
||||
ARCHIVE_OUTPUT_DIRECTORY
|
||||
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
|
||||
install(TARGETS ${target}-static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
endfunction()
|
||||
|
@ -22,8 +22,14 @@ if(MYX_CMAKE_CPACK_DEFAULT_SCHEME)
|
||||
set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME main)
|
||||
endif()
|
||||
|
||||
# В списке компонентов обязательно должны быть main, dev, static и doc
|
||||
list(APPEND CPACK_COMPONENTS_ALL main dev static doc)
|
||||
# В списке компонентов обязательно должны быть main, base-dev, libs-dev и doc
|
||||
list(
|
||||
APPEND
|
||||
CPACK_COMPONENTS_ALL
|
||||
main
|
||||
base-dev
|
||||
libs-dev
|
||||
doc)
|
||||
list(REMOVE_DUPLICATES CPACK_COMPONENTS_ALL)
|
||||
|
||||
# Правило формирования имени пакета и файла для компонента main
|
||||
@ -31,28 +37,23 @@ if(MYX_CMAKE_CPACK_DEFAULT_SCHEME)
|
||||
set(CPACK_DEBIAN_MAIN_FILE_NAME
|
||||
${MYX_CMAKE_PROJECT_NAME_LOWER}_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb)
|
||||
|
||||
# Правило формирования имени пакета и файла для компонента dev
|
||||
set(CPACK_DEBIAN_DEV_PACKAGE_NAME "lib${MYX_CMAKE_PROJECT_NAME_LOWER}-dev")
|
||||
set(CPACK_DEBIAN_DEV_FILE_NAME
|
||||
# Правило формирования имени пакета и файла для компонента base-dev
|
||||
set(CPACK_DEBIAN_BASE-DEV_PACKAGE_NAME "lib${MYX_CMAKE_PROJECT_NAME_LOWER}-base-dev")
|
||||
set(CPACK_DEBIAN_BASE-DEV_FILE_NAME
|
||||
lib${MYX_CMAKE_PROJECT_NAME_LOWER}-base-dev_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb)
|
||||
|
||||
# Правило формирования имени пакета и файла для компонента libs-dev
|
||||
set(CPACK_DEBIAN_LIBS-DEV_PACKAGE_NAME lib${MYX_CMAKE_PROJECT_NAME_LOWER}-dev)
|
||||
set(CPACK_DEBIAN_LIBS-DEV_FILE_NAME
|
||||
lib${MYX_CMAKE_PROJECT_NAME_LOWER}-dev_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb)
|
||||
|
||||
# Правило формирования имени пакета и файла для компонента static
|
||||
set(CPACK_DEBIAN_STATIC_PACKAGE_NAME "lib${MYX_CMAKE_PROJECT_NAME_LOWER}-static-dev")
|
||||
set(CPACK_DEBIAN_STATIC_FILE_NAME
|
||||
lib${MYX_CMAKE_PROJECT_NAME_LOWER}-static-dev_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb)
|
||||
|
||||
set(CPACK_DEBIAN_STATIC_PACKAGE_DEPENDS "lib${MYX_CMAKE_PROJECT_NAME_LOWER}-dev")
|
||||
|
||||
# Правило формирования имени пакета и файла для компонента doc
|
||||
set(CPACK_DEBIAN_DOC_PACKAGE_NAME "${MYX_CMAKE_PROJECT_NAME_LOWER}-doc")
|
||||
set(CPACK_DEBIAN_DOC_FILE_NAME
|
||||
${MYX_CMAKE_PROJECT_NAME_LOWER}-doc_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb)
|
||||
set(CPACK_DEBIAN_LIBS-DEV_PACKAGE_DEPENDS "lib${MYX_CMAKE_PROJECT_NAME_LOWER}-base-dev")
|
||||
|
||||
foreach(component ${CPACK_COMPONENTS_ALL})
|
||||
string(TOLOWER ${component} _cl)
|
||||
string(TOUPPER ${component} _cu)
|
||||
# Правила формирования имени пакета и файла для остальных компонентов
|
||||
if(NOT ${_cl} STREQUAL main AND NOT ${_cl} STREQUAL dev AND NOT ${_cl} STREQUAL static)
|
||||
if(NOT ${_cl} STREQUAL main AND NOT ${_cl} STREQUAL base-dev AND NOT ${_cl} STREQUAL libs-dev)
|
||||
set(CPACK_DEBIAN_${_cu}_PACKAGE_NAME "${MYX_CMAKE_PROJECT_NAME_LOWER}-${_cl}")
|
||||
set(CPACK_DEBIAN_${_cu}_FILE_NAME
|
||||
"${MYX_CMAKE_PROJECT_NAME_LOWER}-${_cl}_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb")
|
||||
|
@ -41,7 +41,6 @@ function(myx_cmake_common_target_properties target)
|
||||
target_include_directories(
|
||||
${target}
|
||||
PUBLIC $<INSTALL_INTERFACE:include>
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
|
||||
@ -68,6 +67,8 @@ function(myx_cmake_common_target_properties target)
|
||||
endif()
|
||||
|
||||
if(_target_type STREQUAL OBJECT_LIBRARY)
|
||||
# target_include_directories(${target} PUBLIC
|
||||
# $<INSTALL_INTERFACE:include/${target}>)
|
||||
set_target_properties(${target} PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
|
||||
|
@ -6,7 +6,7 @@ function(myx_cmake_generate_pkgconfig target)
|
||||
cmake_parse_arguments(ARG "${options}" "${oneVA}" "${multiVA}" ${ARGN})
|
||||
|
||||
if(NOT ARG_COMPONENT)
|
||||
set(ARG_COMPONENT dev)
|
||||
set(ARG_COMPONENT "base-dev")
|
||||
endif()
|
||||
|
||||
get_target_property(_target_type ${target} TYPE)
|
||||
|
Loading…
Reference in New Issue
Block a user