Compare commits
4 Commits
5e05a214bd
...
4164852959
Author | SHA1 | Date | |
---|---|---|---|
4164852959 | |||
959a730ec6 | |||
7302444663 | |||
b083a6cc0f |
@@ -19,6 +19,7 @@ set_project_version()
|
|||||||
include(CMLibOrganizationName)
|
include(CMLibOrganizationName)
|
||||||
set_organization_name()
|
set_organization_name()
|
||||||
|
|
||||||
|
include(CMLibGlobalVariables)
|
||||||
include(CMLibInstallInOpt)
|
include(CMLibInstallInOpt)
|
||||||
include(CMLibLSBInfo)
|
include(CMLibLSBInfo)
|
||||||
include(CMLibCompiler)
|
include(CMLibCompiler)
|
||||||
|
@@ -20,6 +20,6 @@ function(add_common_library LIBNAME SOURCES)
|
|||||||
set_target_properties(${LIBNAME}_static PROPERTIES
|
set_target_properties(${LIBNAME}_static PROPERTIES
|
||||||
OUTPUT_NAME ${LIBNAME}
|
OUTPUT_NAME ${LIBNAME}
|
||||||
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_INSTALL_LIBDIR})
|
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_INSTALL_LIBDIR})
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/cmlib/pc/lib.pc.in ${CMAKE_BINARY_DIR}/${LIBNAME}.pc)
|
configure_file(${CMLIB_MODULE_DIR}/pc/lib.pc.in ${CMAKE_BINARY_DIR}/${LIBNAME}.pc)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
@@ -1,9 +1,8 @@
|
|||||||
include(WriteCompilerDetectionHeader)
|
include(WriteCompilerDetectionHeader)
|
||||||
string(TOUPPER ${PROJECT_NAME} _project_name_uppercase)
|
|
||||||
|
|
||||||
write_compiler_detection_header(
|
write_compiler_detection_header(
|
||||||
FILE include/compiler_features.hpp
|
FILE include/compiler_features.hpp
|
||||||
PREFIX ${_project_name_uppercase}
|
PREFIX ${CMLIB_PROJECT_NAME_CANONICAL}
|
||||||
COMPILERS GNU Clang MSVC Intel
|
COMPILERS GNU Clang MSVC Intel
|
||||||
FEATURES
|
FEATURES
|
||||||
cxx_nullptr
|
cxx_nullptr
|
||||||
|
@@ -2,6 +2,5 @@ function(cmlib_config_hpp_generate)
|
|||||||
get_property(VERSION_INT GLOBAL PROPERTY VERSION_INT)
|
get_property(VERSION_INT GLOBAL PROPERTY VERSION_INT)
|
||||||
get_property(VERSION_STR GLOBAL PROPERTY VERSION_STR)
|
get_property(VERSION_STR GLOBAL PROPERTY VERSION_STR)
|
||||||
get_property(ORGANIZATION_NAME GLOBAL PROPERTY ORGANIZATION_NAME)
|
get_property(ORGANIZATION_NAME GLOBAL PROPERTY ORGANIZATION_NAME)
|
||||||
string(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UPPERCASE)
|
configure_file(${CMLIB_MODULE_DIR}/hpp/config.hpp.in ${CMAKE_BINARY_DIR}/include/config.hpp)
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/cmlib/hpp/config.hpp.in ${CMAKE_BINARY_DIR}/include/config.hpp)
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@@ -12,3 +12,18 @@ if(${_source_realpath} STREQUAL ${_binary_realpath})
|
|||||||
message(FATAL_ERROR "In-source builds are not allowed.")
|
message(FATAL_ERROR "In-source builds are not allowed.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Очистка от сгенерированных файлов
|
||||||
|
file(GLOB_RECURSE _cmakelists_files RELATIVE ${_source_realpath} CMakeLists.txt)
|
||||||
|
foreach(_it ${_cmakelists_files})
|
||||||
|
get_filename_component(_file ${_it} REALPATH)
|
||||||
|
get_filename_component(_dir ${_file} DIRECTORY)
|
||||||
|
file(REMOVE_RECURSE
|
||||||
|
${_dir}/CMakeFiles
|
||||||
|
${_dir}/CMakeCache.txt
|
||||||
|
${_dir}/cmake_install.cmake
|
||||||
|
${_dir}/Makefile
|
||||||
|
${_dir}/build.ninja
|
||||||
|
${_dir}/rules.ninja
|
||||||
|
)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
14
CMLibGlobalVariables.cmake
Normal file
14
CMLibGlobalVariables.cmake
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# CMLIB_PROJECT_NAME_CANONICAL
|
||||||
|
string(TOUPPER ${PROJECT_NAME} _project_name_uppercase)
|
||||||
|
string(REGEX REPLACE "[ -]" "_" _project_name_fixed ${_project_name_uppercase})
|
||||||
|
set(CMLIB_PROJECT_NAME_CANONICAL ${_project_name_fixed})
|
||||||
|
|
||||||
|
# CMLIB_MODULE_DIR
|
||||||
|
set(CMLIB_MODULE_DIR "")
|
||||||
|
foreach(_m ${CMAKE_MODULE_PATH})
|
||||||
|
if(EXISTS ${_m}/CMLibCommon.cmake)
|
||||||
|
get_filename_component(CMLIB_MODULE_DIR ${_m}/CMLibCommon.cmake DIRECTORY)
|
||||||
|
break()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
@@ -10,7 +10,7 @@ macro(test_large_files VARIABLE USE_64_SUFFIX)
|
|||||||
|
|
||||||
# First try without any macros defined
|
# First try without any macros defined
|
||||||
try_compile(LARGE_FILES_SUPPORTED "${CMAKE_BINARY_DIR}"
|
try_compile(LARGE_FILES_SUPPORTED "${CMAKE_BINARY_DIR}"
|
||||||
"${CMAKE_MODULE_PATH}/tests/LargeFiles${SUFFIX_64}.c"
|
"${CMLIB_MODULE_DIR}/tests/LargeFiles${SUFFIX_64}.c"
|
||||||
OUTPUT_VARIABLE TRY_LARGE_FILES_OUTPUT)
|
OUTPUT_VARIABLE TRY_LARGE_FILES_OUTPUT)
|
||||||
|
|
||||||
if(VERBOSE_LARGE_FILES)
|
if(VERBOSE_LARGE_FILES)
|
||||||
@@ -20,7 +20,7 @@ macro(test_large_files VARIABLE USE_64_SUFFIX)
|
|||||||
if(NOT LARGE_FILES_SUPPORTED)
|
if(NOT LARGE_FILES_SUPPORTED)
|
||||||
# Try with C macro _FILE_OFFSET_BITS=64
|
# Try with C macro _FILE_OFFSET_BITS=64
|
||||||
try_compile(LARGE_FILES_SUPPORTED "${CMAKE_BINARY_DIR}"
|
try_compile(LARGE_FILES_SUPPORTED "${CMAKE_BINARY_DIR}"
|
||||||
"${CMAKE_MODULE_PATH}/tests/LargeFiles${SUFFIX_64}.c"
|
"${CMLIB_MODULE_DIR}/tests/LargeFiles${SUFFIX_64}.c"
|
||||||
COMPILE_DEFINITIONS "-D_FILE_OFFSET_BITS=64"
|
COMPILE_DEFINITIONS "-D_FILE_OFFSET_BITS=64"
|
||||||
OUTPUT_VARIABLE TRY_LARGE_FILES_OUTPUT)
|
OUTPUT_VARIABLE TRY_LARGE_FILES_OUTPUT)
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ macro(test_large_files VARIABLE USE_64_SUFFIX)
|
|||||||
# Try with C macro _LARGEFILE_SOURCE
|
# Try with C macro _LARGEFILE_SOURCE
|
||||||
|
|
||||||
try_compile(LARGE_FILES_SUPPORTED "${CMAKE_BINARY_DIR}"
|
try_compile(LARGE_FILES_SUPPORTED "${CMAKE_BINARY_DIR}"
|
||||||
"${CMAKE_MODULE_PATH}/tests/LargeFiles${SUFFIX_64}.c"
|
"${CMLIB_MODULE_DIR}/tests/LargeFiles${SUFFIX_64}.c"
|
||||||
COMPILE_DEFINITIONS "-D_LARGEFILE${SUFFIX_64}_SOURCE"
|
COMPILE_DEFINITIONS "-D_LARGEFILE${SUFFIX_64}_SOURCE"
|
||||||
OUTPUT_VARIABLE TRY_LARGE_FILES_OUTPUT)
|
OUTPUT_VARIABLE TRY_LARGE_FILES_OUTPUT)
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ macro(test_large_files VARIABLE USE_64_SUFFIX)
|
|||||||
if(NOT LARGE_FILES_SUPPORTED)
|
if(NOT LARGE_FILES_SUPPORTED)
|
||||||
# Try with both C macro _FILE_OFFSET_BITS=64 and _LARGEFILE_SOURCE
|
# Try with both C macro _FILE_OFFSET_BITS=64 and _LARGEFILE_SOURCE
|
||||||
try_compile(LARGE_FILES_SUPPORTED "${CMAKE_BINARY_DIR}"
|
try_compile(LARGE_FILES_SUPPORTED "${CMAKE_BINARY_DIR}"
|
||||||
"${CMAKE_MODULE_PATH}/tests/LargeFiles${SUFFIX_64}.c"
|
"${CMLIB_MODULE_DIR}/tests/LargeFiles${SUFFIX_64}.c"
|
||||||
COMPILE_DEFINITIONS "-D_FILE_OFFSET_BITS=64" "-D_LARGEFILE${SUFFIX_64}_SOURCE"
|
COMPILE_DEFINITIONS "-D_FILE_OFFSET_BITS=64" "-D_LARGEFILE${SUFFIX_64}_SOURCE"
|
||||||
OUTPUT_VARIABLE TRY_LARGE_FILES_OUTPUT)
|
OUTPUT_VARIABLE TRY_LARGE_FILES_OUTPUT)
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ macro(test_large_files VARIABLE USE_64_SUFFIX)
|
|||||||
if(NOT LARGE_FILES_SUPPORTED)
|
if(NOT LARGE_FILES_SUPPORTED)
|
||||||
# Maybe we are using the Windows C standard library
|
# Maybe we are using the Windows C standard library
|
||||||
try_compile(LARGE_FILES_SUPPORTED "${CMAKE_BINARY_DIR}"
|
try_compile(LARGE_FILES_SUPPORTED "${CMAKE_BINARY_DIR}"
|
||||||
"${CMAKE_MODULE_PATH}/tests/LargeFilesWindows.c")
|
"${CMLIB_MODULE_DIR}/tests/LargeFilesWindows.c")
|
||||||
endif(NOT LARGE_FILES_SUPPORTED)
|
endif(NOT LARGE_FILES_SUPPORTED)
|
||||||
|
|
||||||
if(LARGE_FILES_SUPPORTED)
|
if(LARGE_FILES_SUPPORTED)
|
||||||
|
@@ -40,7 +40,7 @@ function(qt_translation)
|
|||||||
COMMAND ${Qt5_LUPDATE_EXECUTABLE} ARGS ${_sources_list} -ts ${_ts_list}
|
COMMAND ${Qt5_LUPDATE_EXECUTABLE} ARGS ${_sources_list} -ts ${_ts_list}
|
||||||
DEPENDS ${_sources_list})
|
DEPENDS ${_sources_list})
|
||||||
|
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/cmlib/qrc/l10n.qrc.in ${CMAKE_BINARY_DIR}/${_target}_l10n.qrc)
|
configure_file(${CMLIB_MODULE_DIR}/qrc/l10n.qrc.in ${CMAKE_BINARY_DIR}/${_target}_l10n.qrc)
|
||||||
qt5_add_resources(_qrc ${CMAKE_BINARY_DIR}/${_target}_l10n.qrc)
|
qt5_add_resources(_qrc ${CMAKE_BINARY_DIR}/${_target}_l10n.qrc)
|
||||||
add_custom_target(_qrc_target DEPENDS ${_qrc})
|
add_custom_target(_qrc_target DEPENDS ${_qrc})
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
if(NOT TARGET uninstall)
|
if(NOT TARGET uninstall)
|
||||||
configure_file(
|
configure_file(
|
||||||
"${CMAKE_SOURCE_DIR}/cmake/cmlib/CMLibUninstall.cmake.in"
|
"${CMLIB_MODULE_DIR}/CMLibUninstall.cmake.in"
|
||||||
"${CMAKE_BINARY_DIR}/cmake_uninstall.cmake"
|
"${CMAKE_BINARY_DIR}/cmake_uninstall.cmake"
|
||||||
IMMEDIATE @ONLY)
|
IMMEDIATE @ONLY)
|
||||||
|
|
||||||
|
@@ -20,3 +20,12 @@ foreach(file ${files})
|
|||||||
endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||||
endforeach(file)
|
endforeach(file)
|
||||||
|
|
||||||
|
# Удаление пустых каталогов
|
||||||
|
foreach(_file ${files})
|
||||||
|
set(_res 0)
|
||||||
|
while(_res EQUAL 0)
|
||||||
|
get_filename_component(_file ${_file} DIRECTORY)
|
||||||
|
execute_process(COMMAND rmdir ${_file} RESULT_VARIABLE _res OUTPUT_QUIET ERROR_QUIET)
|
||||||
|
endwhile()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
#ifndef @PROJECT_NAME_UPPERCASE@_CONFIG_HPP_
|
#ifndef @CMLIB_PROJECT_NAME_CANONICAL@_CONFIG_HPP_
|
||||||
#define @PROJECT_NAME_UPPERCASE@_CONFIG_HPP_
|
#define @CMLIB_PROJECT_NAME_CANONICAL@_CONFIG_HPP_
|
||||||
|
|
||||||
#define @PROJECT_NAME_UPPERCASE@_VERSION_STR "@VERSION_STR@"
|
#define @CMLIB_PROJECT_NAME_CANONICAL@_VERSION_STR "@VERSION_STR@"
|
||||||
#define @PROJECT_NAME_UPPERCASE@_VERSION_INT @VERSION_INT@
|
#define @CMLIB_PROJECT_NAME_CANONICAL@_VERSION_INT @VERSION_INT@
|
||||||
#define ORGANIZATION_NAME "@ORGANIZATION_NAME@"
|
#define ORGANIZATION_NAME "@ORGANIZATION_NAME@"
|
||||||
#define PROJECT_NAME "@CMAKE_PROJECT_NAME@"
|
#define PROJECT_NAME "@CMAKE_PROJECT_NAME@"
|
||||||
#define BUILD_TYPE "@CMAKE_BUILD_TYPE@"
|
#define BUILD_TYPE "@CMAKE_BUILD_TYPE@"
|
||||||
@@ -12,4 +12,5 @@
|
|||||||
#cmakedefine RELEASE @RELEASE@
|
#cmakedefine RELEASE @RELEASE@
|
||||||
#cmakedefine ANALYSIS @ANALYSIS@
|
#cmakedefine ANALYSIS @ANALYSIS@
|
||||||
|
|
||||||
#endif // @PROJECT_NAME_UPPERCASE@_CONFIG_HPP_
|
#endif /* @CMLIB_PROJECT_NAME_CANONICAL@_CONFIG_HPP_ */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user