|
|
|
|
@@ -2,21 +2,21 @@
|
|
|
|
|
|
|
|
|
|
shstk_define_option(name desc)
|
|
|
|
|
|
|
|
|
|
shstk_begin_project(domain module)
|
|
|
|
|
shstk_begin_project(name)
|
|
|
|
|
|
|
|
|
|
shstk_install(dir is_app target h_files)
|
|
|
|
|
|
|
|
|
|
shstk_is_parent_exists(out)
|
|
|
|
|
|
|
|
|
|
shstk_copy_to_parent(domain)
|
|
|
|
|
shstk_copy_to_parent()
|
|
|
|
|
|
|
|
|
|
shstk_add_directories(domain)
|
|
|
|
|
shstk_add_directories()
|
|
|
|
|
|
|
|
|
|
shstk_add_directories_with_include(is_qt domain)
|
|
|
|
|
shstk_add_directories_with_include(is_qt name)
|
|
|
|
|
|
|
|
|
|
shstk_set_find_dirs(domain)
|
|
|
|
|
shstk_set_find_dirs(name)
|
|
|
|
|
|
|
|
|
|
shstk_find_header(module filename add_find_info)
|
|
|
|
|
shstk_find_header(name filename add_find_info)
|
|
|
|
|
|
|
|
|
|
align_list(list out)
|
|
|
|
|
|
|
|
|
|
@@ -38,7 +38,9 @@ macro(shstk_define_option name desc)
|
|
|
|
|
endmacro()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
macro(shstk_begin_project domain module)
|
|
|
|
|
macro(shstk_begin_project name)
|
|
|
|
|
string(TOLOWER "${name}" ${name}_lowercase)
|
|
|
|
|
string(TOUPPER "${name}" ${name}_uppercase)
|
|
|
|
|
set(INSTALL_PREFIX)
|
|
|
|
|
set(_plugins_default_ 1)
|
|
|
|
|
if (CMAKE_CROSSCOMPILING)
|
|
|
|
|
@@ -55,7 +57,7 @@ macro(shstk_begin_project domain module)
|
|
|
|
|
if("x${BUILD_NUMBER}" STREQUAL "x")
|
|
|
|
|
set(BUILD_NUMBER 0)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
shstk_define_option(LOCAL "Local install" OFF)
|
|
|
|
|
if (DEFINED ENV{QNX_HOST} OR PIP_FREERTOS)
|
|
|
|
|
set(STATIC_LIB_DEFAULT ON)
|
|
|
|
|
@@ -86,7 +88,7 @@ macro(shstk_begin_project domain module)
|
|
|
|
|
set(_install_msg ON) # CACHE STRING "shstk_install_msg")
|
|
|
|
|
message(STATUS "Install to ${_path}")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (CMAKE_BUILD_TYPE MATCHES Debug)
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3 -Wall")
|
|
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3 -Wall")
|
|
|
|
|
@@ -94,7 +96,7 @@ macro(shstk_begin_project domain module)
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall")
|
|
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -Wall")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(MINGW)
|
|
|
|
|
list(APPEND CMAKE_LIBRARY_PATH ${MINGW_LIB})
|
|
|
|
|
endif()
|
|
|
|
|
@@ -114,52 +116,45 @@ macro(shstk_begin_project domain module)
|
|
|
|
|
if (DEFINED ANDROID_PLATFORM)
|
|
|
|
|
include_directories(${ANDROID_SYSTEM_LIBRARY_PATH}/usr/include)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set(_qt_libs )
|
|
|
|
|
set(_qt_apps )
|
|
|
|
|
set(_qt_plugs)
|
|
|
|
|
if (NOT "x${domain}" STREQUAL "x")
|
|
|
|
|
set(BUILDING_${domain} ON CACHE BOOL "build ${domain}")
|
|
|
|
|
set(${domain}_ROOT_SRC "${CMAKE_CURRENT_SOURCE_DIR}" CACHE STRING "")
|
|
|
|
|
set(${domain}_ROOT_BIN "${CMAKE_CURRENT_BINARY_DIR}" CACHE STRING "")
|
|
|
|
|
set(SET_TARGETS_${domain} OFF CACHE BOOL "" FORCE)
|
|
|
|
|
if (NOT "x${name}" STREQUAL "x")
|
|
|
|
|
set(BUILDING_${name} ON CACHE BOOL "build ${name}")
|
|
|
|
|
set(${name}_ROOT_SRC "${CMAKE_CURRENT_SOURCE_DIR}" CACHE STRING "")
|
|
|
|
|
set(${name}_ROOT_BIN "${CMAKE_CURRENT_BINARY_DIR}" CACHE STRING "")
|
|
|
|
|
set(SET_TARGETS_${name} OFF CACHE BOOL "" FORCE)
|
|
|
|
|
|
|
|
|
|
if(STATIC_LIB)
|
|
|
|
|
add_definitions(-D${module}_STATIC_DEFINE)
|
|
|
|
|
set(${domain}_LIB_TYPE STATIC)
|
|
|
|
|
set(${domain}_LIB_TYPE_MSG "Static")
|
|
|
|
|
add_definitions(-D${${name}_uppercase}_STATIC_DEFINE)
|
|
|
|
|
set(${name}_LIB_TYPE STATIC)
|
|
|
|
|
set(${name}_LIB_TYPE_MSG "Static")
|
|
|
|
|
else()
|
|
|
|
|
set(${domain}_LIB_TYPE SHARED)
|
|
|
|
|
set(${domain}_LIB_TYPE_MSG "Shared")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (CMAKE_BUILD_TYPE MATCHES Debug)
|
|
|
|
|
set(${domain}_BUILD_TYPE "Debug")
|
|
|
|
|
#add_definitions(-DPIP_DEBUG)
|
|
|
|
|
else()
|
|
|
|
|
set(${domain}_BUILD_TYPE "Release")
|
|
|
|
|
set(${name}_LIB_TYPE SHARED)
|
|
|
|
|
set(${name}_LIB_TYPE_MSG "Shared")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
#set(${domain}_MAJOR 1)
|
|
|
|
|
#set(${domain}_MINOR 8)
|
|
|
|
|
#set(${domain}_REVISION 0)
|
|
|
|
|
#set(${domain}_SUFFIX )
|
|
|
|
|
#set(${domain}_COMPANY SHS)
|
|
|
|
|
#set(${domain}_DOMAIN org.SHS)
|
|
|
|
|
set(${domain}_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/${domain}_version.h")
|
|
|
|
|
set_version(${domain}
|
|
|
|
|
MAJOR "${${domain}_MAJOR}"
|
|
|
|
|
MINOR "${${domain}_MINOR}"
|
|
|
|
|
REVISION "${${domain}_REVISION}"
|
|
|
|
|
if (CMAKE_BUILD_TYPE MATCHES Debug)
|
|
|
|
|
set(${name}_BUILD_TYPE "Debug")
|
|
|
|
|
else()
|
|
|
|
|
set(${name}_BUILD_TYPE "Release")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
set(${name}_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/${${name}_lowercase}_version.h")
|
|
|
|
|
set_version(${name}
|
|
|
|
|
MAJOR "${${name}_MAJOR}"
|
|
|
|
|
MINOR "${${name}_MINOR}"
|
|
|
|
|
REVISION "${${name}_REVISION}"
|
|
|
|
|
BUILD "${BUILD_NUMBER}"
|
|
|
|
|
SUFFIX "${${domain}_SUFFIX}"
|
|
|
|
|
OUTPUT "${${domain}_VERSION_FILE}")
|
|
|
|
|
set_deploy_property(${domain} ${${domain}_LIB_TYPE}
|
|
|
|
|
FULLNAME "${${domain}_DOMAIN}.*"
|
|
|
|
|
COMPANY "${${domain}_COMPANY}")
|
|
|
|
|
|
|
|
|
|
SUFFIX "${${name}_SUFFIX}"
|
|
|
|
|
OUTPUT "${${name}_VERSION_FILE}")
|
|
|
|
|
set_deploy_property(${name} ${${name}_LIB_TYPE}
|
|
|
|
|
FULLNAME "${${name}_DOMAIN}.*"
|
|
|
|
|
COMPANY "${${name}_COMPANY}")
|
|
|
|
|
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
endmacro()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -227,7 +222,7 @@ macro(shstk_copy_to_parent)
|
|
|
|
|
endmacro()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
macro(shstk_add_directories domain)
|
|
|
|
|
macro(shstk_add_directories)
|
|
|
|
|
file(GLOB _dl "[^.]*")
|
|
|
|
|
foreach(_d ${_dl})
|
|
|
|
|
if(IS_DIRECTORY ${_d})
|
|
|
|
|
@@ -238,7 +233,7 @@ macro(shstk_add_directories domain)
|
|
|
|
|
endmacro()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
macro(shstk_add_directories_with_include is_qt domain)
|
|
|
|
|
macro(shstk_add_directories_with_include is_qt name)
|
|
|
|
|
set(DIRS)
|
|
|
|
|
file(GLOB _dl "[^.]*")
|
|
|
|
|
foreach(_d ${_dl})
|
|
|
|
|
@@ -250,11 +245,11 @@ macro(shstk_add_directories_with_include is_qt domain)
|
|
|
|
|
foreach(_d ${DIRS})
|
|
|
|
|
get_filename_component(_dname "${_d}" NAME)
|
|
|
|
|
if (${is_qt})
|
|
|
|
|
list(APPEND QT_MULTILIB_LIST ${domain}${_dname})
|
|
|
|
|
list(APPEND QT_MULTILIB_LIST ${name}${_dname})
|
|
|
|
|
#set(QT_MULTILIB_LIST "${QT_MULTILIB_LIST}" CACHE STRING "")
|
|
|
|
|
endif()
|
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach(_d ${DIRS})
|
|
|
|
|
add_subdirectory(${_d})
|
|
|
|
|
endforeach()
|
|
|
|
|
@@ -263,35 +258,35 @@ macro(shstk_add_directories_with_include is_qt domain)
|
|
|
|
|
endmacro()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
macro(shstk_set_find_dirs domain)
|
|
|
|
|
#set(_PIP_INCDIR "${PIP_DIR}/include/pip")
|
|
|
|
|
#set(_PIP_LIBDIR "${PIP_DIR}/lib")
|
|
|
|
|
set(${domain}_INCDIR)
|
|
|
|
|
set(${domain}_LIBDIR)
|
|
|
|
|
set(${domain}_BINDIR)
|
|
|
|
|
set(${domain}_FIND_PROGRAM_ARG)
|
|
|
|
|
set(${domain}_BINEXT "")
|
|
|
|
|
#if (BUILDING_${domain})
|
|
|
|
|
# list(APPEND ${domain}_INCDIR "${${domain}_ROOT_SRC}")
|
|
|
|
|
# list(APPEND ${domain}_LIBDIR "${${domain}_ROOT_BIN}")
|
|
|
|
|
#endif()
|
|
|
|
|
macro(shstk_set_find_dirs name)
|
|
|
|
|
string(TOLOWER "${name}" ${name}_lowercase)
|
|
|
|
|
set(${name}_INCDIR)
|
|
|
|
|
set(${name}_LIBDIR)
|
|
|
|
|
set(${name}_BINDIR)
|
|
|
|
|
set(${name}_FIND_PROGRAM_ARG)
|
|
|
|
|
set(${name}_BINEXT "")
|
|
|
|
|
if(DEFINED ${name}_DIR)
|
|
|
|
|
list(APPEND ${name}_LIBDIR "${${name}_DIR}/lib")
|
|
|
|
|
list(APPEND ${name}_INCDIR "${${name}_DIR}/include/${${name}_lowercase}")
|
|
|
|
|
list(APPEND ${name}_BINDIR "${${name}_DIR}/bin")
|
|
|
|
|
endif()
|
|
|
|
|
if(MINGW_INCLUDE)
|
|
|
|
|
list(APPEND ${domain}_INCDIR "${MINGW_INCLUDE}/${domain}")
|
|
|
|
|
list(APPEND ${domain}_LIBDIR "${MINGW_LIB}")
|
|
|
|
|
list(APPEND ${domain}_BINDIR "${MINGW_BIN}")
|
|
|
|
|
list(APPEND ${name}_INCDIR "${MINGW_INCLUDE}/${${name}_lowercase}")
|
|
|
|
|
list(APPEND ${name}_LIBDIR "${MINGW_LIB}")
|
|
|
|
|
list(APPEND ${name}_BINDIR "${MINGW_BIN}")
|
|
|
|
|
endif()
|
|
|
|
|
if(CMAKE_CROSSCOMPILING)
|
|
|
|
|
list(APPEND ${domain}_INCDIR "${CMAKE_PREFIX_PATH}/include/${domain}")
|
|
|
|
|
list(APPEND ${domain}_LIBDIR "${CMAKE_PREFIX_PATH}/lib")
|
|
|
|
|
set(${domain}_FIND_PROGRAM_ARG "NO_DEFAULT_PATH")
|
|
|
|
|
list(APPEND ${domain}_BINDIR "/usr/bin" "/usr/local/bin")
|
|
|
|
|
list(APPEND ${name}_INCDIR "${CMAKE_PREFIX_PATH}/include/${${name}_lowercase}")
|
|
|
|
|
list(APPEND ${name}_LIBDIR "${CMAKE_PREFIX_PATH}/lib")
|
|
|
|
|
set(${name}_FIND_PROGRAM_ARG "NO_DEFAULT_PATH")
|
|
|
|
|
list(APPEND ${name}_BINDIR "/usr/bin" "/usr/local/bin")
|
|
|
|
|
include_directories(${CMAKE_PREFIX_PATH}/include)
|
|
|
|
|
link_directories(${CMAKE_PREFIX_PATH}/lib)
|
|
|
|
|
else()
|
|
|
|
|
list(APPEND ${domain}_BINDIR "${CMAKE_PREFIX_PATH}/bin")
|
|
|
|
|
list(APPEND ${name}_BINDIR "${CMAKE_PREFIX_PATH}/bin")
|
|
|
|
|
if(NOT WIN32)
|
|
|
|
|
list(APPEND ${domain}_INCDIR "/usr/include/${domain}" "/usr/local/include/${domain}")
|
|
|
|
|
list(APPEND ${domain}_LIBDIR "/usr/lib" "/usr/local/lib")
|
|
|
|
|
list(APPEND ${name}_INCDIR "/usr/include/${${name}_lowercase}" "/usr/local/include/${${name}_lowercase}")
|
|
|
|
|
list(APPEND ${name}_LIBDIR "/usr/lib" "/usr/local/lib")
|
|
|
|
|
endif()
|
|
|
|
|
if(APPLE)
|
|
|
|
|
include_directories(/usr/local/include)
|
|
|
|
|
@@ -299,51 +294,47 @@ macro(shstk_set_find_dirs domain)
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
if ("x${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "xWindows")
|
|
|
|
|
set(${domain}_BINEXT ".exe")
|
|
|
|
|
set(${name}_BINEXT ".exe")
|
|
|
|
|
if (CMAKE_CROSSCOMPILING)
|
|
|
|
|
set(${domain}_FIND_PROGRAM_ARG)
|
|
|
|
|
set(${name}_FIND_PROGRAM_ARG)
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
#list(APPEND ${domain}_BINDIR "${PIP_DIR}/bin")
|
|
|
|
|
endmacro()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
macro(shstk_find_header domain module filename add_find_info)
|
|
|
|
|
if(NOT ${module}_VERSION)
|
|
|
|
|
find_file(${domain}_H_INCLUDE "${filename}" HINTS ${${domain}_INCDIR})
|
|
|
|
|
#message("${domain}_H_INCLUDE \"${filename}\" HINTS \"${${domain}_INCDIR}\" = \"${${domain}_H_INCLUDE}\"")
|
|
|
|
|
if (NOT ${domain}_H_INCLUDE)
|
|
|
|
|
message(FATAL_ERROR "Can`t find ${module} version file (\"${filename}\")!")
|
|
|
|
|
macro(shstk_find_header name filename add_find_info)
|
|
|
|
|
string(TOUPPER "${name}" ${name}_uppercase)
|
|
|
|
|
if(NOT ${name}_VERSION)
|
|
|
|
|
find_file(${name}_H_INCLUDE "${filename}" HINTS ${${name}_INCDIR})
|
|
|
|
|
#message("${name}_H_INCLUDE \"${filename}\" HINTS \"${${name}_INCDIR}\" = \"${${name}_H_INCLUDE}\"")
|
|
|
|
|
if (NOT ${name}_H_INCLUDE)
|
|
|
|
|
message(FATAL_ERROR "Can`t find ${name} version file (\"${filename}\")!")
|
|
|
|
|
endif()
|
|
|
|
|
#if (DEFINED ANDROID_PLATFORM)
|
|
|
|
|
# set(CD_INCLUDES ${ANDROID_SYSTEM_LIBRARY_PATH}/usr/include/${domain})
|
|
|
|
|
#else()
|
|
|
|
|
get_filename_component(_inc ${${domain}_H_INCLUDE} PATH)
|
|
|
|
|
set(${domain}_INCLUDES "${_inc}" CACHE STRING "")
|
|
|
|
|
#endif()
|
|
|
|
|
get_filename_component(_inc ${${name}_H_INCLUDE} PATH)
|
|
|
|
|
set(${name}_INCLUDES "${_inc}" CACHE STRING "")
|
|
|
|
|
include(CheckSymbolExists)
|
|
|
|
|
check_symbol_exists(${module}_VERSION_NAME "${${domain}_H_INCLUDE}" _${domain}_version_found)
|
|
|
|
|
if (_${domain}_version_found)
|
|
|
|
|
file(STRINGS "${${domain}_H_INCLUDE}" _version REGEX "^[ \t]*#define[ \t]+${module}_VERSION_NAME+[ \t]+.*$")
|
|
|
|
|
check_symbol_exists(${name}_VERSION_NAME "${${name}_H_INCLUDE}" _${name}_version_found)
|
|
|
|
|
if (_${name}_version_found)
|
|
|
|
|
file(STRINGS "${${name}_H_INCLUDE}" _version REGEX "^[ \t]*#define[ \t]+${${name}_uppercase}_VERSION_NAME+[ \t]+.*$")
|
|
|
|
|
string(REGEX MATCH "\".*\"" _version ${_version})
|
|
|
|
|
string(LENGTH ${_version} SL)
|
|
|
|
|
math(EXPR SL ${SL}-2)
|
|
|
|
|
string(SUBSTRING ${_version} 1 ${SL} _version)
|
|
|
|
|
set(${module}_VERSION ${_version} CACHE STRING "${module}_VERSION")
|
|
|
|
|
if (NOT _FIND_${module}_MSG)
|
|
|
|
|
set(_FIND_${module}_MSG 1 CACHE BOOL "find_msg_${module}" FORCE)
|
|
|
|
|
set(${name}_VERSION ${_version} CACHE STRING "${name}_VERSION")
|
|
|
|
|
if (NOT _FIND_${name}_MSG)
|
|
|
|
|
set(_FIND_${name}_MSG 1 CACHE BOOL "find_msg_${name}" FORCE)
|
|
|
|
|
set(_afi)
|
|
|
|
|
if (NOT "x${add_find_info}" STREQUAL "x")
|
|
|
|
|
set(_afi ": ${add_find_info}")
|
|
|
|
|
endif()
|
|
|
|
|
message(STATUS "Found ${module}${_afi} (version \"${${module}_VERSION}\")")
|
|
|
|
|
message(STATUS "Found ${name}${_afi} (version \"${${name}_VERSION}\")")
|
|
|
|
|
endif()
|
|
|
|
|
else()
|
|
|
|
|
message(FATAL_ERROR "Can`t find ${module}_VERSION_NAME in \"${filename}\"!")
|
|
|
|
|
message(FATAL_ERROR "Can`t find ${${name}_uppercase}_VERSION_NAME in \"${filename}\"!")
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
if(${module}_FIND_VERSION VERSION_GREATER ${module}_VERSION)
|
|
|
|
|
message(FATAL_ERROR "${module} version ${${module}_VERSION} is available, but ${${module}_FIND_VERSION} requested!")
|
|
|
|
|
if(${name}_FIND_VERSION VERSION_GREATER ${name}_VERSION)
|
|
|
|
|
message(FATAL_ERROR "${name} version ${${name}_VERSION} is available, but ${${${name}_uppercase}_FIND_VERSION} requested!")
|
|
|
|
|
endif()
|
|
|
|
|
endmacro()
|
|
|
|
|
|
|
|
|
|
|