Compare commits
4 Commits
5e05a214bd
...
4164852959
Author | SHA1 | Date | |
---|---|---|---|
4164852959 | |||
959a730ec6 | |||
7302444663 | |||
b083a6cc0f |
@@ -19,6 +19,7 @@ set_project_version()
|
||||
include(CMLibOrganizationName)
|
||||
set_organization_name()
|
||||
|
||||
include(CMLibGlobalVariables)
|
||||
include(CMLibInstallInOpt)
|
||||
include(CMLibLSBInfo)
|
||||
include(CMLibCompiler)
|
||||
|
@@ -20,6 +20,6 @@ function(add_common_library LIBNAME SOURCES)
|
||||
set_target_properties(${LIBNAME}_static PROPERTIES
|
||||
OUTPUT_NAME ${LIBNAME}
|
||||
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()
|
||||
|
||||
|
@@ -1,9 +1,8 @@
|
||||
include(WriteCompilerDetectionHeader)
|
||||
string(TOUPPER ${PROJECT_NAME} _project_name_uppercase)
|
||||
|
||||
write_compiler_detection_header(
|
||||
FILE include/compiler_features.hpp
|
||||
PREFIX ${_project_name_uppercase}
|
||||
PREFIX ${CMLIB_PROJECT_NAME_CANONICAL}
|
||||
COMPILERS GNU Clang MSVC Intel
|
||||
FEATURES
|
||||
cxx_nullptr
|
||||
|
@@ -2,6 +2,5 @@ function(cmlib_config_hpp_generate)
|
||||
get_property(VERSION_INT GLOBAL PROPERTY VERSION_INT)
|
||||
get_property(VERSION_STR GLOBAL PROPERTY VERSION_STR)
|
||||
get_property(ORGANIZATION_NAME GLOBAL PROPERTY ORGANIZATION_NAME)
|
||||
string(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UPPERCASE)
|
||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/cmlib/hpp/config.hpp.in ${CMAKE_BINARY_DIR}/include/config.hpp)
|
||||
configure_file(${CMLIB_MODULE_DIR}/hpp/config.hpp.in ${CMAKE_BINARY_DIR}/include/config.hpp)
|
||||
endfunction()
|
||||
|
@@ -12,3 +12,18 @@ if(${_source_realpath} STREQUAL ${_binary_realpath})
|
||||
message(FATAL_ERROR "In-source builds are not allowed.")
|
||||
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
|
||||
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)
|
||||
|
||||
if(VERBOSE_LARGE_FILES)
|
||||
@@ -20,7 +20,7 @@ macro(test_large_files VARIABLE USE_64_SUFFIX)
|
||||
if(NOT LARGE_FILES_SUPPORTED)
|
||||
# Try with C macro _FILE_OFFSET_BITS=64
|
||||
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"
|
||||
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_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"
|
||||
OUTPUT_VARIABLE TRY_LARGE_FILES_OUTPUT)
|
||||
|
||||
@@ -53,7 +53,7 @@ macro(test_large_files VARIABLE USE_64_SUFFIX)
|
||||
if(NOT LARGE_FILES_SUPPORTED)
|
||||
# Try with both C macro _FILE_OFFSET_BITS=64 and _LARGEFILE_SOURCE
|
||||
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"
|
||||
OUTPUT_VARIABLE TRY_LARGE_FILES_OUTPUT)
|
||||
|
||||
@@ -70,7 +70,7 @@ macro(test_large_files VARIABLE USE_64_SUFFIX)
|
||||
if(NOT LARGE_FILES_SUPPORTED)
|
||||
# Maybe we are using the Windows C standard library
|
||||
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)
|
||||
|
||||
if(LARGE_FILES_SUPPORTED)
|
||||
|
@@ -40,7 +40,7 @@ function(qt_translation)
|
||||
COMMAND ${Qt5_LUPDATE_EXECUTABLE} ARGS ${_sources_list} -ts ${_ts_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)
|
||||
add_custom_target(_qrc_target DEPENDS ${_qrc})
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
if(NOT TARGET uninstall)
|
||||
configure_file(
|
||||
"${CMAKE_SOURCE_DIR}/cmake/cmlib/CMLibUninstall.cmake.in"
|
||||
"${CMLIB_MODULE_DIR}/CMLibUninstall.cmake.in"
|
||||
"${CMAKE_BINARY_DIR}/cmake_uninstall.cmake"
|
||||
IMMEDIATE @ONLY)
|
||||
|
||||
|
@@ -20,3 +20,12 @@ foreach(file ${files})
|
||||
endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${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_
|
||||
#define @PROJECT_NAME_UPPERCASE@_CONFIG_HPP_
|
||||
#ifndef @CMLIB_PROJECT_NAME_CANONICAL@_CONFIG_HPP_
|
||||
#define @CMLIB_PROJECT_NAME_CANONICAL@_CONFIG_HPP_
|
||||
|
||||
#define @PROJECT_NAME_UPPERCASE@_VERSION_STR "@VERSION_STR@"
|
||||
#define @PROJECT_NAME_UPPERCASE@_VERSION_INT @VERSION_INT@
|
||||
#define @CMLIB_PROJECT_NAME_CANONICAL@_VERSION_STR "@VERSION_STR@"
|
||||
#define @CMLIB_PROJECT_NAME_CANONICAL@_VERSION_INT @VERSION_INT@
|
||||
#define ORGANIZATION_NAME "@ORGANIZATION_NAME@"
|
||||
#define PROJECT_NAME "@CMAKE_PROJECT_NAME@"
|
||||
#define BUILD_TYPE "@CMAKE_BUILD_TYPE@"
|
||||
@@ -12,4 +12,5 @@
|
||||
#cmakedefine RELEASE @RELEASE@
|
||||
#cmakedefine ANALYSIS @ANALYSIS@
|
||||
|
||||
#endif // @PROJECT_NAME_UPPERCASE@_CONFIG_HPP_
|
||||
#endif /* @CMLIB_PROJECT_NAME_CANONICAL@_CONFIG_HPP_ */
|
||||
|
||||
|
Reference in New Issue
Block a user