created project with cmake
This commit is contained in:
parent
c4b3d8ac5f
commit
5f6abf300e
54 changed files with 412 additions and 310 deletions
807
CMake/CMake.1.6.0/CMakeMacros.cmake
Normal file
807
CMake/CMake.1.6.0/CMakeMacros.cmake
Normal file
|
@ -0,0 +1,807 @@
|
|||
include (CMakeParseArguments)
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
####################################
|
||||
#set_output_dir
|
||||
# Description:
|
||||
# Change the output directory of the project to given folder
|
||||
# for all configurations
|
||||
#
|
||||
# Syntax:
|
||||
# set_output_dir(foldername)
|
||||
####################################
|
||||
macro (set_output_dir DIR)
|
||||
foreach (CONFIG ${CMAKE_CONFIGURATION_TYPES})
|
||||
# make configuration variable upper case for CMAKE macros
|
||||
string(TOUPPER ${CONFIG} CONFIGUPPERCASE)
|
||||
|
||||
# set directories
|
||||
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONFIGUPPERCASE} ${DIR})
|
||||
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONFIGUPPERCASE} ${DIR})
|
||||
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONFIGUPPERCASE} ${DIR})
|
||||
set( CMAKE_PDB_OUTPUT_DIRECTORY_${CONFIGUPPERCASE} ${DIR})
|
||||
endforeach (CONFIG ${CMAKE_CONFIGURATION_TYPES})
|
||||
endmacro (set_output_dir)
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function(TSEP_TRANSLATE)
|
||||
|
||||
# define file lists for all languages
|
||||
foreach(arg IN LISTS ARGN)
|
||||
set(TRANSLATION_FILES_ORIG
|
||||
${TRANSLATION_FILES_ORIG}
|
||||
resources/${PROJECT_NAME}_${arg}_generated.ts
|
||||
)
|
||||
set(TRANSLATION_FILES
|
||||
${TRANSLATION_FILES}
|
||||
resources/${PROJECT_NAME}_${arg}.ts
|
||||
)
|
||||
set(TRANSLATION_RESOURCE_LIST
|
||||
${TRANSLATION_RESOURCE_LIST}
|
||||
"<file>${PROJECT_NAME}_${arg}.qm</file>"
|
||||
)
|
||||
if(NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/resources/${PROJECT_NAME}_${arg}.ts)
|
||||
configure_file(${TSEP_PROJECT_CMAKE}/Templates/Translation.Template.ts ${CMAKE_CURRENT_LIST_DIR}/resources/${PROJECT_NAME}_${arg}.ts COPYONLY)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# replace all ";" from the resource list
|
||||
string(REPLACE ";" "\n " TRANSLATION_RESOURCE_STRING "${TRANSLATION_RESOURCE_LIST}")
|
||||
|
||||
if (WIN32)
|
||||
# copy project specific *translations.qrc to the resources folder
|
||||
configure_file(${TSEP_PROJECT_CMAKE}/Templates/Translations.Template.qrc ${CMAKE_CURRENT_LIST_DIR}/resources/${PROJECT_NAME}_translations.qrc @ONLY)
|
||||
endif()
|
||||
|
||||
# call qt translation functions
|
||||
qt5_create_translation(ORIG_TRANSLATIONS ${CMAKE_CURRENT_LIST_DIR} ${TRANSLATION_FILES_ORIG})
|
||||
qt5_add_translation(QM_FILES ${TRANSLATION_FILES})
|
||||
configure_file(resources/${PROJECT_NAME}_translations.qrc ${CMAKE_BINARY_DIR}/${PROJECT_NAME} COPYONLY)
|
||||
|
||||
# define TSEP_TRANSLATION_FILES in parent scope so it can be added to the project by add_executable or add_library
|
||||
set(TSEP_TRANSLATION_FILES_LOCAL ${TRANSLATION_FILES} ${TRANSLATION_FILES_ORIG} ${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}_translations.qrc)
|
||||
set(TSEP_TRANSLATION_FILES ${TSEP_TRANSLATION_FILES_LOCAL} PARENT_SCOPE)
|
||||
|
||||
# Group the files in the solution
|
||||
source_group("Translation Files" FILES ${TSEP_TRANSLATION_FILES_LOCAL})
|
||||
|
||||
endfunction()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function(TSEP_SETUP_DLL_VERSION ComponentDescription)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Windows Version Description with Resource Files
|
||||
if(WIN32)
|
||||
add_definitions(-DVER_COMPANYNAME_STR="${TSEP_COMPANY_LONGNAME}")
|
||||
add_definitions(-DVER_FILEVERSION_STR="${TSEP_PRODUCT_VERSION}")
|
||||
add_definitions(-DVER_FILEVERSION=${TSEP_PRODUCT_VERSION})
|
||||
add_definitions(-DVER_FILEDESCRIPTION_STR="${ComponentDescription}")
|
||||
add_definitions(-DVER_LEGALCOPYRIGHT_STR="${TSEP_COPYRIGHT_STRING}")
|
||||
add_definitions(-DVER_PRODUCTNAME_STR="${TSEP_PROJECT}")
|
||||
|
||||
set(AUTOMATED_VERSION_FILES
|
||||
${TSEP_DLL_VERSION_RC}
|
||||
)
|
||||
source_group("Automated Version Files" FILES ${AUTOMATED_VERSION_FILES})
|
||||
else()
|
||||
# define entry point for shared library to print the version information
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-e,tsep_version_entry_point" PARENT_SCOPE)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,-e,tsep_version_entry_point" PARENT_SCOPE)
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wl,-e,tsep_version_entry_point" PARENT_SCOPE)
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wl,-e,tsep_version_entry_point" PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
add_definitions(-DTSEP_VERSION="${TSEP_VERSION}")
|
||||
add_definitions(-DTSEP_VERSION_MAJOR=${TSEP_VERSION_MAJOR})
|
||||
add_definitions(-DTSEP_VERSION_MINOR=${TSEP_VERSION_MINOR})
|
||||
add_definitions(-DTSEP_VERSION_PATCH=${TSEP_VERSION_PATCH})
|
||||
add_definitions(-DTSEP_PRODUCT_NAME="${TSEP_PRODUCT_NAME}")
|
||||
add_definitions(-DTSEP_COPYRIGHT="${TSEP_COPYRIGHT_STRING}")
|
||||
add_definitions(-DTSEP_COMPANY_NAME="${TSEP_COMPANY_LONGNAME}")
|
||||
|
||||
endfunction()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function(TSEP_SETUP_APP_VERSION ComponentDescription)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Windows Version Description with Resource Files
|
||||
if(WIN32)
|
||||
add_definitions(-DVER_COMPANYNAME_STR="${TSEP_COMPANY_LONGNAME}")
|
||||
add_definitions(-DVER_FILEVERSION_STR="${TSEP_PRODUCT_VERSION}")
|
||||
add_definitions(-DVER_FILEVERSION=${TSEP_PRODUCT_VERSION})
|
||||
add_definitions(-DVER_FILEDESCRIPTION_STR="${ComponentDescription}")
|
||||
add_definitions(-DVER_LEGALCOPYRIGHT_STR="${TSEP_COPYRIGHT_STRING}")
|
||||
add_definitions(-DVER_PRODUCTNAME_STR="${TSEP_PROJECT}")
|
||||
|
||||
set(AUTOMATED_VERSION_FILES
|
||||
${TSEP_APP_VERSION_RC}
|
||||
)
|
||||
|
||||
source_group("Automated Version Files" FILES ${AUTOMATED_VERSION_FILES})
|
||||
endif()
|
||||
|
||||
add_definitions(-DTSEP_VERSION="${TSEP_VERSION}")
|
||||
add_definitions(-DTSEP_VERSION_MAJOR=${TSEP_VERSION_MAJOR})
|
||||
add_definitions(-DTSEP_VERSION_MINOR=${TSEP_VERSION_MINOR})
|
||||
add_definitions(-DTSEP_VERSION_PATCH=${TSEP_VERSION_PATCH})
|
||||
|
||||
endfunction()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function(TSEP_ADD_EXPORT_FILE )
|
||||
|
||||
message(" Generating import cmake file for project / " ${PROJECT_NAME})
|
||||
|
||||
set(TEMP_PRODUCT_NAME "Tsep.")
|
||||
string(APPEND TEMP_PRODUCT_NAME ${TSEP_PRODUCT_NAME})
|
||||
set(TEMP_PROJECT_COLON_NAME "")
|
||||
string(REPLACE "." "::" TEMP_PROJECT_COLON_NAME ${TEMP_PRODUCT_NAME})
|
||||
set(TEMP_PROJECT_SIMPLE_NAME "")
|
||||
string(REPLACE "." "" TEMP_PROJECT_SIMPLE_NAME ${TEMP_PRODUCT_NAME})
|
||||
set(TEMP_PROJECT_DOT_NAME ${TEMP_PRODUCT_NAME})
|
||||
string(TOUPPER ${TSEP_PRODUCT_NAME} TEMP_CMAKE_PROJECT_NAME)
|
||||
|
||||
#message("Colon " ${TEMP_PROJECT_COLON_NAME})
|
||||
#message("Dot " ${TEMP_PROJECT_DOT_NAME})
|
||||
#message("Simple " ${TEMP_PROJECT_SIMPLE_NAME})
|
||||
|
||||
# Copy the nuspec template file and configure it for the product
|
||||
configure_file( ${TSEP_PROJECT_CMAKE}/Templates/CMakeLists.Import.Template ${TSEP_EXPORT_DIR}/${TEMP_PROJECT_SIMPLE_NAME}Config.cmake @ONLY )
|
||||
|
||||
endfunction()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
macro(TSEP_ADD_EXPORT_HEADER HeaderList)
|
||||
|
||||
message(" Generating custom action to export header files for project / " ${PROJECT_NAME})
|
||||
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "${HeaderList}")
|
||||
|
||||
endmacro()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
macro(TSEP_ADD_PROJECT_NEXUS_UPLOAD)
|
||||
|
||||
# Lower case for configuration flag
|
||||
string( TOLOWER ${TSEP_UPDATE_IN_NEXUS} TSEP_UPDATE_IN_NEXUS_LOWER )
|
||||
|
||||
# Add a new target if Nexus upload is requested
|
||||
if( TSEP_UPDATE_IN_NEXUS_LOWER STREQUAL "true" )
|
||||
|
||||
message(" Generating Nexus upload project for product / " ${TSEP_PRODUCT_NAME})
|
||||
|
||||
# Copy the nuspec template file and configure it for the product
|
||||
configure_file( ${TSEP_PROJECT_CMAKE}/Templates/CMake.nuspec.Template ${TSEP_EXPORT_DIR}/${TSEP_PRODUCT_NAME}.nuspec )
|
||||
|
||||
# Copy the template nexus upload cmake file
|
||||
file(MAKE_DIRECTORY NEXUS_UPLOAD)
|
||||
file(COPY ${TSEP_PROJECT_CMAKE}/Templates/CMakeLists.Nexus.Template.cmake DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/NEXUS_UPLOAD )
|
||||
file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/NEXUS_UPLOAD/CMakeLists.Nexus.Template.cmake ${CMAKE_CURRENT_SOURCE_DIR}/NEXUS_UPLOAD/CMakeLists.txt )
|
||||
|
||||
# Create a new project for the nexus upload
|
||||
add_subdirectory ( "NEXUS_UPLOAD" "${CMAKE_CURRENT_BINARY_DIR}/NEXUS_UPLOAD" )
|
||||
|
||||
endif()
|
||||
|
||||
endmacro()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
macro(TSEP_THIRDPARTY_NEXUS_UPLOAD)
|
||||
|
||||
# Lower case for configuration flag
|
||||
string( TOLOWER ${TSEP_UPDATE_IN_NEXUS} TSEP_UPDATE_IN_NEXUS_LOWER )
|
||||
|
||||
# Add a new target if Nexus upload is requested
|
||||
if( TSEP_UPDATE_IN_NEXUS_LOWER STREQUAL "true" )
|
||||
|
||||
message(" Executing Nexus upload for third party product / " ${TSEP_PRODUCT_NAME})
|
||||
|
||||
# Create package
|
||||
execute_process( WORKING_DIRECTORY ${TSEP_EXPORT_DIR}
|
||||
COMMAND ${TSEP_NUGET_APPLICATION} pack ${TSEP_EXPORT_DIR}/${TSEP_PRODUCT_NAME}.nuspec -outputdirectory ${TSEP_EXPORT_DIR} -BasePath ${TSEP_EXPORT_DIR} -verbosity detailed
|
||||
)
|
||||
|
||||
execute_process( WORKING_DIRECTORY ${TSEP_EXPORT_DIR}
|
||||
COMMAND ${TSEP_NUGET_APPLICATION} push *.nupkg ${TSEP_NEXUS_GUID} -source ${TSEP_NEXUS_URL}/Development/ -verbosity detailed
|
||||
)
|
||||
|
||||
endif()
|
||||
|
||||
endmacro()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
macro(TSEP_ADD_PROJECT_CODE_ANALYZER)
|
||||
|
||||
# Visual Studio
|
||||
if(WIN32)
|
||||
|
||||
message(" Generating Visual Studio Code Analyzer project for product / " ${TSEP_PRODUCT_NAME})
|
||||
|
||||
# Copy the template Nexus upload CMake file
|
||||
file(MAKE_DIRECTORY VS_CODE_ANALYZER)
|
||||
file(COPY ${TSEP_PROJECT_CMAKE}/Templates/CMakeLists.VS_CodeAnalyzer.Template.cmake DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/VS_CODE_ANALYZER )
|
||||
file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/VS_CODE_ANALYZER/CMakeLists.VS_CodeAnalyzer.Template.cmake ${CMAKE_CURRENT_SOURCE_DIR}/VS_CODE_ANALYZER/CMakeLists.txt )
|
||||
|
||||
# Create a new project for the Visual Studio CodeAnalyzer
|
||||
add_subdirectory ( "VS_CODE_ANALYZER" "${CMAKE_CURRENT_BINARY_DIR}/VS_CODE_ANALYZER" )
|
||||
|
||||
endif()
|
||||
|
||||
endmacro()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
MACRO(TSEP_GET_HEADER_DIRECTORIES return_list target_dir)
|
||||
|
||||
FILE(GLOB_RECURSE new_list ${target_dir}/*.h)
|
||||
SET(dir_list "")
|
||||
FOREACH(file_path ${new_list})
|
||||
GET_FILENAME_COMPONENT(dir_path ${file_path} PATH)
|
||||
SET(dir_list ${dir_list} ${dir_path})
|
||||
ENDFOREACH()
|
||||
LIST(REMOVE_DUPLICATES dir_list)
|
||||
SET(${return_list} ${dir_list})
|
||||
|
||||
ENDMACRO()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
macro(TSEP_ADD_OS_SPECIFIC_SETTINGS)
|
||||
|
||||
IF (WIN32)
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC Iphlpapi.lib)
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC Shlwapi.lib)
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC Ws2_32.lib)
|
||||
ENDIF()
|
||||
|
||||
IF (LINUX)
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC dl)
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC pthread)
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC rt)
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC stdc++fs)
|
||||
ENDIF()
|
||||
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX d)
|
||||
endmacro()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
macro(TSEP_CREATE_LINK_FOR_DIRECTORY directory_for_search)
|
||||
|
||||
if(WIN32)
|
||||
#- Get all files from the given directory
|
||||
file(GLOB FILES_TO_LINK ${directory_for_search}/bin/*.dll ${directory_for_search}/bin/*.exe)
|
||||
|
||||
#- Loop over all files
|
||||
foreach(file_and_path_to_link ${FILES_TO_LINK})
|
||||
|
||||
#- Get the file name from the complete path
|
||||
get_filename_component(file_to_link ${file_and_path_to_link} NAME)
|
||||
|
||||
#- convert the path into an operating system depending format
|
||||
file(TO_NATIVE_PATH ${file_and_path_to_link} native_file_and_path_to_link)
|
||||
|
||||
#- create the link
|
||||
if(EXISTS "${PROJECT_BINARY_DIR}/Debug/bin/${file_to_link}")
|
||||
file(REMOVE "${PROJECT_BINARY_DIR}/Debug/bin/${file_to_link}")
|
||||
endif()
|
||||
execute_process( WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/Debug/bin
|
||||
COMMAND cmd.exe /c mklink "${file_to_link}" "${native_file_and_path_to_link}"
|
||||
OUTPUT_QUIET)
|
||||
|
||||
#- create the link
|
||||
if(EXISTS "${PROJECT_BINARY_DIR}/Release/bin/${file_to_link}")
|
||||
file(REMOVE "${PROJECT_BINARY_DIR}/Release/bin/${file_to_link}")
|
||||
endif()
|
||||
execute_process( WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/Release/bin
|
||||
COMMAND cmd.exe /c mklink "${file_to_link}" "${native_file_and_path_to_link}"
|
||||
OUTPUT_QUIET)
|
||||
|
||||
endforeach()
|
||||
|
||||
endif()
|
||||
|
||||
endmacro()
|
||||
|
||||
#//////////////////////////////////////////////////////////////////////
|
||||
macro(TSEP_USE_GOOGLE_TESTING)
|
||||
|
||||
message(" Enabling the Google Test Framework ")
|
||||
|
||||
enable_testing()
|
||||
|
||||
if(WIN32)
|
||||
set(GTEST_ROOT ${TSEP_PROJECT_GOOGLE.TEST}/${TSEP_CMAKE_GENERATOR}) # <- Working hand-in-hand with the google export!
|
||||
endif()
|
||||
|
||||
find_package(GTest REQUIRED)
|
||||
|
||||
if(WIN32)
|
||||
TSEP_CREATE_LINK_FOR_DIRECTORY(${TSEP_PROJECT_GOOGLE.TEST}/${TSEP_CMAKE_GENERATOR})
|
||||
endif()
|
||||
|
||||
endmacro()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
macro(TSEP_CREATE_EXPORT)
|
||||
|
||||
#- Only for developer build
|
||||
if(NOT TSEP_PRODUCT_BUILD)
|
||||
|
||||
message(" Generating custom action to export files for project / " ${PROJECT_NAME})
|
||||
|
||||
install(TARGETS ${PROJECT_NAME}
|
||||
EXPORT ${MAIN_PROJECT_NAME}Config
|
||||
RUNTIME DESTINATION bin/${TSEP_CMAKE_GENERATOR}
|
||||
LIBRARY DESTINATION bin/${TSEP_CMAKE_GENERATOR}
|
||||
ARCHIVE DESTINATION bin/${TSEP_CMAKE_GENERATOR}
|
||||
PUBLIC_HEADER DESTINATION inc
|
||||
)
|
||||
|
||||
if (WIN32 AND NOT ${ARGC})
|
||||
install (FILES $<TARGET_PDB_FILE:${PROJECT_NAME}> DESTINATION bin/${TSEP_CMAKE_GENERATOR} OPTIONAL)
|
||||
endif()
|
||||
|
||||
install(EXPORT ${MAIN_PROJECT_NAME}Config
|
||||
DESTINATION bin/${TSEP_CMAKE_GENERATOR}/cmake
|
||||
NAMESPACE Tsep::
|
||||
)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
macro(TSEP_PROVIDE_UNITTEST_FILES TestFileList)
|
||||
|
||||
message(" Generating custom action to provide the test file in the tmp directory / " ${PROJECT_NAME})
|
||||
|
||||
if (WIN32)
|
||||
file(TO_NATIVE_PATH $ENV{TMP}/${PROJECT_NAME} DEST_DIR)
|
||||
else()
|
||||
file(TO_NATIVE_PATH /tmp/${PROJECT_NAME} DEST_DIR)
|
||||
endif()
|
||||
|
||||
#- Add pre-link step to the copy the source files
|
||||
add_custom_command(TARGET ${PROJECT_NAME}
|
||||
DEPENDS ${TestFileList}
|
||||
COMMENT "Provide Unit Test Files..."
|
||||
POST_BUILD
|
||||
VERBATIM
|
||||
WORKING_DIRECTORY
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E remove_directory ${DEST_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEST_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${TestFileList} ${DEST_DIR}
|
||||
)
|
||||
|
||||
endmacro()
|
||||
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
macro(TSEP_PROVIDE_APPLICATION_DATA_FILES ApplicationName AppDataFileList)
|
||||
|
||||
message(" Generating custom action to provide the application data file in the application data directory / " ${ApplicationName})
|
||||
|
||||
# Calculate the length of the loop
|
||||
list(LENGTH ${AppDataFileList} len1)
|
||||
math(EXPR len2 "${len1} / 2")
|
||||
|
||||
# Loop over the array
|
||||
foreach(val RANGE 0 ${len2} 2)
|
||||
# Calculate the next idx
|
||||
math(EXPR valN "${val} + 1")
|
||||
|
||||
# Get the items
|
||||
list(GET ${AppDataFileList} ${val} SubFolder)
|
||||
list(GET ${AppDataFileList} ${valN} FileName)
|
||||
|
||||
# Do copy
|
||||
if("${SubFolder}" STREQUAL "")
|
||||
TSEP_PROVIDE_APPLICATION_DATA_FILES_IN_ROOTFOLDER(${ApplicationName} ${FileName})
|
||||
else()
|
||||
TSEP_PROVIDE_APPLICATION_DATA_FILES_IN_SUBFOLDER(${ApplicationName} ${SubFolder} ${FileName})
|
||||
endif()
|
||||
|
||||
# message(STATUS "${val1} ${val2}")
|
||||
endforeach()
|
||||
|
||||
endmacro()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
macro(TSEP_PROVIDE_APPLICATION_DATA_FILES_IN_ROOTFOLDER ApplicationName AppDataFile)
|
||||
|
||||
message(" Generating custom action to provide the application data file -> ${AppDataFile}")
|
||||
|
||||
if (WIN32)
|
||||
file(TO_NATIVE_PATH $ENV{PROGRAMDATA}/Tsep/${ApplicationName} DEST_DIR)
|
||||
else()
|
||||
file(TO_NATIVE_PATH $ENV{HOME}/.local/share DEST_DIR)
|
||||
endif()
|
||||
|
||||
#- Add pre-link step to the copy the source files
|
||||
add_custom_command(TARGET ${PROJECT_NAME}
|
||||
DEPENDS ${AppDataFileList}
|
||||
POST_BUILD
|
||||
VERBATIM
|
||||
WORKING_DIRECTORY
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEST_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${AppDataFile} ${DEST_DIR}
|
||||
)
|
||||
|
||||
endmacro()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
macro(TSEP_PROVIDE_APPLICATION_DATA_FILES_IN_SUBFOLDER ApplicationName SubFolder AppDataFile)
|
||||
|
||||
message(" Generating custom action to provide the application data file in folder ${SubFolder} -> ${AppDataFile}")
|
||||
|
||||
if (WIN32)
|
||||
file(TO_NATIVE_PATH $ENV{PROGRAMDATA}/Tsep/${ApplicationName}/${SubFolder} DEST_DIR)
|
||||
else()
|
||||
file(TO_NATIVE_PATH $ENV{HOME}/.local/share/${SubFolder} DEST_DIR)
|
||||
endif()
|
||||
|
||||
#- Add pre-link step to the copy the source files
|
||||
add_custom_command(TARGET ${PROJECT_NAME}
|
||||
DEPENDS ${AppDataFileList}
|
||||
POST_BUILD
|
||||
VERBATIM
|
||||
WORKING_DIRECTORY
|
||||
COMMAND_EXPAND_LISTS
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEST_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${AppDataFile} ${DEST_DIR}
|
||||
)
|
||||
|
||||
endmacro()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function(TSEP_GENERATE_DEPENDENCY_LINKS)
|
||||
message(" Generating executable links for all dependencies")
|
||||
|
||||
# Generate the link only if we are in developer mode
|
||||
if(NOT TSEP_PRODUCT_BUILD)
|
||||
# Debug ----------------------------------------------------------------------------------------
|
||||
TSEP_GENERATE_DEPENDENCY_LINKS_FOR_CONFIGURATION(Debug)
|
||||
TSEP_GENERATE_ADDED_DEPENDENCY_LINKS_FOR_CONFIGURATION(Debug)
|
||||
|
||||
# Release ----------------------------------------------------------------------------------------
|
||||
TSEP_GENERATE_DEPENDENCY_LINKS_FOR_CONFIGURATION(Release)
|
||||
TSEP_GENERATE_ADDED_DEPENDENCY_LINKS_FOR_CONFIGURATION(Release)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function(TSEP_GENERATE_DEPENDENCY_LINKS_FOR_CONFIGURATION)
|
||||
|
||||
get_target_property(ExecutableLinks ${PROJECT_NAME} LINK_LIBRARIES)
|
||||
set (CONTAINS_QT_PROJECT_GLOBAL FALSE)
|
||||
|
||||
# For all files --------------------------------------------------------------------------------
|
||||
foreach (Executable ${ExecutableLinks})
|
||||
set (CONTAINS_QT_PROJECT FALSE)
|
||||
set (CONTAINS_SSL_PROJECT FALSE)
|
||||
set (CONTAINS_CRYPTO_PROJECT FALSE)
|
||||
set (CONTAINS_TSEP_PROJECT FALSE)
|
||||
|
||||
string(FIND ${Executable} "Tsep::" TsepExecutable)
|
||||
if (TsepExecutable GREATER -1)
|
||||
set (CONTAINS_TSEP_PROJECT TRUE)
|
||||
endif()
|
||||
if(WIN32)
|
||||
string(FIND ${Executable} "Qt5::" QtExecutable)
|
||||
if (QtExecutable GREATER -1)
|
||||
set (CONTAINS_QT_PROJECT TRUE)
|
||||
set (CONTAINS_QT_PROJECT_GLOBAL TRUE)
|
||||
endif()
|
||||
string(FIND ${Executable} "OpenSSL::SSL" OpenSslExecutable)
|
||||
if (OpenSslExecutable GREATER -1)
|
||||
set (CONTAINS_SSL_PROJECT TRUE)
|
||||
endif()
|
||||
string(FIND ${Executable} "OpenSSL::Crypto" OpenSslExecutable)
|
||||
if (OpenSslExecutable GREATER -1)
|
||||
set (CONTAINS_CRYPTO_PROJECT TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CONTAINS_TSEP_PROJECT OR CONTAINS_QT_PROJECT OR CONTAINS_SSL_PROJECT OR CONTAINS_CRYPTO_PROJECT)
|
||||
# at the moment not needed for linux
|
||||
if(WIN32)
|
||||
if(CONTAINS_SSL_PROJECT)
|
||||
set(LinkFile ${OPENSSL_ROOT_DIR}/bin/libssl-1_1-x64.dll)
|
||||
elseif(CONTAINS_CRYPTO_PROJECT)
|
||||
set(LinkFile ${OPENSSL_ROOT_DIR}/bin/libcrypto-1_1-x64.dll)
|
||||
elseif (${ARGV0} STREQUAL Debug)
|
||||
get_target_property(LinkFile ${Executable} LOCATION_DEBUG)
|
||||
else()
|
||||
get_target_property(LinkFile ${Executable} LOCATION_RELEASE)
|
||||
endif()
|
||||
|
||||
#- Get the file name from the complete path
|
||||
get_filename_component(LinkFileName ${LinkFile} NAME)
|
||||
|
||||
#- convert the path into an operating system depending format
|
||||
file(TO_NATIVE_PATH ${LinkFile} LinkFileNative)
|
||||
|
||||
#- remove the file if it exists
|
||||
if(EXISTS "${PROJECT_BINARY_DIR}/${ARGV0}/bin/${LinkFileName}")
|
||||
file(REMOVE "${PROJECT_BINARY_DIR}/${ARGV0}/bin/${LinkFileName}")
|
||||
endif()
|
||||
|
||||
#- convert the path into an operating system depending format
|
||||
file(TO_NATIVE_PATH ${LinkFileName} LinkFileNameNative)
|
||||
execute_process( WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/${ARGV0}/bin
|
||||
COMMAND cmd.exe /c mklink "${LinkFileNameNative}" "${LinkFileNative}"
|
||||
OUTPUT_QUIET)
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Qt platforms and iconengines have special destination folders
|
||||
if(${CONTAINS_QT_PROJECT_GLOBAL})
|
||||
set(PLATFORMS_DIR ${Qt5_DIR}/../../../plugins/platforms)
|
||||
file(TO_NATIVE_PATH ${PLATFORMS_DIR} NATIVE_PLATFORMS_DIR)
|
||||
execute_process(WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/${ARGV0}/bin
|
||||
COMMAND cmd.exe /c mklink /D platforms "${NATIVE_PLATFORMS_DIR}"
|
||||
OUTPUT_QUIET)
|
||||
|
||||
set(ICONENGINES_DIR ${Qt5_DIR}/../../../plugins/iconengines)
|
||||
file(TO_NATIVE_PATH ${ICONENGINES_DIR} NATIVE_ICONENGINES_DIR)
|
||||
execute_process(WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/${ARGV0}/bin
|
||||
COMMAND cmd.exe /c mklink /D iconengines "${NATIVE_ICONENGINES_DIR}"
|
||||
OUTPUT_QUIET)
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
# creates dependency links for dynamically loaded libraries under windows and extends the rpath under linux
|
||||
function(TSEP_GENERATE_ADDED_DEPENDENCY_LINKS_FOR_CONFIGURATION)
|
||||
|
||||
get_target_property(ExecutableLinks ${PROJECT_NAME} MANUALLY_ADDED_DEPENDENCIES)
|
||||
|
||||
# For all files --------------------------------------------------------------------------------
|
||||
foreach (Executable ${ExecutableLinks})
|
||||
set (CONTAINS_TSEP_PROJECT FALSE)
|
||||
|
||||
string(FIND ${Executable} "Tsep::" TsepExecutable)
|
||||
if (TsepExecutable GREATER -1)
|
||||
set (CONTAINS_TSEP_PROJECT TRUE)
|
||||
endif()
|
||||
|
||||
if(CONTAINS_TSEP_PROJECT)
|
||||
|
||||
if (${ARGV0} STREQUAL Debug)
|
||||
get_target_property(LinkFile ${Executable} LOCATION_DEBUG)
|
||||
else()
|
||||
get_target_property(LinkFile ${Executable} LOCATION_RELEASE)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
#- Get the file name from the complete path
|
||||
get_filename_component(LinkFileName ${LinkFile} NAME)
|
||||
|
||||
#- convert the path into an operating system depending format
|
||||
file(TO_NATIVE_PATH ${LinkFile} LinkFileNative)
|
||||
|
||||
#- create the link
|
||||
|
||||
#- remove the file if it exists
|
||||
if(EXISTS "${PROJECT_BINARY_DIR}/${ARGV0}/bin/${LinkFileName}")
|
||||
file(REMOVE "${PROJECT_BINARY_DIR}/${ARGV0}/bin/${LinkFileName}")
|
||||
endif()
|
||||
|
||||
#- convert the path into an operating system depending format
|
||||
file(TO_NATIVE_PATH ${LinkFileName} LinkFileNameNative)
|
||||
execute_process( WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/${ARGV0}/bin
|
||||
COMMAND cmd.exe /c mklink "${LinkFileNameNative}" "${LinkFileNative}"
|
||||
OUTPUT_QUIET)
|
||||
else()
|
||||
#- Get the path of the file
|
||||
get_filename_component(LinkDirectoryName ${LinkFile} DIRECTORY)
|
||||
get_target_property(OLD_RPATH ${PROJECT_NAME} BUILD_RPATH)
|
||||
if (${OLD_PATH})
|
||||
set_property(TARGET ${PROJECT_NAME} PROPERTY BUILD_RPATH "${OLD_RPATH};${LinkDirectoryName}")
|
||||
else()
|
||||
set_property(TARGET ${PROJECT_NAME} PROPERTY BUILD_RPATH "$ORIGIN;${LinkDirectoryName}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
endfunction()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function(TSEP_GENERATE_CUSTOM_DEPENDENCY_LINK)
|
||||
message(" Generating executable links for all dependencies")
|
||||
|
||||
# Debug ----------------------------------------------------------------------------------------
|
||||
TSEP_GENERATE_CUSTOM_DEPENDENCY_LINK_FOR_CONFIGURATION(Debug ${ARGV0} ${ARGV1})
|
||||
|
||||
# Release ----------------------------------------------------------------------------------------
|
||||
TSEP_GENERATE_CUSTOM_DEPENDENCY_LINK_FOR_CONFIGURATION(Release ${ARGV0} ${ARGV1})
|
||||
|
||||
endfunction()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function(TSEP_GENERATE_CUSTOM_DEPENDENCY_LINK_FOR_CONFIGURATION)
|
||||
#- Get the file name from the complete path
|
||||
set(LinkFile ${ARGV1})
|
||||
get_filename_component(LinkFileName ${LinkFile} NAME)
|
||||
|
||||
if(${ARGC} GREATER 2)
|
||||
set(LinkFileName ${ARGV2}/${LinkFileName})
|
||||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/${ARGV0}/bin/${ARGV2})
|
||||
endif()
|
||||
|
||||
#- convert the path into an operating system depending format
|
||||
file(TO_NATIVE_PATH ${LinkFile} LinkFileNative)
|
||||
|
||||
#- create the link
|
||||
if(WIN32)
|
||||
#- remove the file if it exists
|
||||
if(EXISTS "${PROJECT_BINARY_DIR}/${ARGV0}/bin/${LinkFileName}")
|
||||
file(REMOVE "${PROJECT_BINARY_DIR}/${ARGV0}/bin/${LinkFileName}")
|
||||
endif()
|
||||
|
||||
#- convert the path into an operating system depending format
|
||||
file(TO_NATIVE_PATH ${LinkFileName} LinkFileNameNative)
|
||||
execute_process( WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/${ARGV0}/bin
|
||||
COMMAND cmd.exe /c mklink "${LinkFileNameNative}" "${LinkFileNative}"
|
||||
OUTPUT_QUIET)
|
||||
else()
|
||||
file(COPY ${LinkFile} DESTINATION ${PROJECT_BINARY_DIR}/bin/)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function(TSEP_GENERATE_CUSTOM_DEPENDENCY_TARGET_LINK)
|
||||
message(" Generating executable links for all dependencies")
|
||||
|
||||
# Debug ----------------------------------------------------------------------------------------
|
||||
TSEP_GENERATE_CUSTOM_DEPENDENCY_TARGET_LINK_FOR_CONFIGURATION(Debug ${ARGV0} ${ARGV1})
|
||||
|
||||
# Release ----------------------------------------------------------------------------------------
|
||||
TSEP_GENERATE_CUSTOM_DEPENDENCY_TARGET_LINK_FOR_CONFIGURATION(Release ${ARGV0} ${ARGV1})
|
||||
|
||||
endfunction()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function(TSEP_GENERATE_CUSTOM_DEPENDENCY_TARGET_LINK_FOR_CONFIGURATION)
|
||||
#- Get the file name from the complete path
|
||||
set(Executable ${ARGV1})
|
||||
|
||||
if (${ARGV0} STREQUAL Debug)
|
||||
get_target_property(LinkFile ${Executable} LOCATION_DEBUG)
|
||||
else()
|
||||
get_target_property(LinkFile ${Executable} LOCATION_RELEASE)
|
||||
endif()
|
||||
|
||||
get_filename_component(LinkFileName ${LinkFile} NAME)
|
||||
|
||||
if(${ARGC} GREATER 2)
|
||||
set(LinkFileName ${ARGV2}/${LinkFileName})
|
||||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/${ARGV0}/bin/${ARGV2})
|
||||
endif()
|
||||
|
||||
#- create the link
|
||||
if(WIN32)
|
||||
#- convert the path into an operating system depending format
|
||||
file(TO_NATIVE_PATH ${LinkFile} LinkFileNative)
|
||||
|
||||
#- remove the file if it exists
|
||||
if(EXISTS "${PROJECT_BINARY_DIR}/${ARGV0}/bin/${LinkFileName}")
|
||||
file(REMOVE "${PROJECT_BINARY_DIR}/${ARGV0}/bin/${LinkFileName}")
|
||||
endif()
|
||||
|
||||
#- convert the path into an operating system depending format
|
||||
file(TO_NATIVE_PATH ${LinkFileName} LinkFileNameNative)
|
||||
execute_process( WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/${ARGV0}/bin
|
||||
COMMAND cmd.exe /c mklink "${LinkFileNameNative}" "${LinkFileNative}"
|
||||
OUTPUT_QUIET)
|
||||
else()
|
||||
message("${LinkFile} -> ${PROJECT_BINARY_DIR}/bin/${LinkFileName}")
|
||||
file(COPY ${LinkFile} DESTINATION ${PROJECT_BINARY_DIR}/bin/)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function(TSEP_USE_CODE_ANALYSIS ProjectName)
|
||||
|
||||
if (WIN32)
|
||||
#- generate the poperty file only if it not exists
|
||||
if(NOT EXISTS "${PROJECT_BINARY_DIR}/${TSEP_VS_PROP_FILE}")
|
||||
message(" Create VS property sheet for code analysing for project / " ${ProjectName})
|
||||
|
||||
set(TsepConfigPropFile ${TSEP_PROJECT_CMAKE}/${TSEP_CA_RULESET_DIR}/${TSEP_VS_PROP_FILE})
|
||||
file(TO_NATIVE_PATH ${TsepConfigPropFile} TsepConfigPropFileNative)
|
||||
|
||||
set(TsepCAFile ${TSEP_PROJECT_CMAKE}/${TSEP_CA_RULESET_DIR}/${TSEP_CA_RULESET_FILE})
|
||||
file(TO_NATIVE_PATH ${TsepCAFile} TsepCAFileNative)
|
||||
|
||||
# Copy the nuspec template file and configure it for the product
|
||||
configure_file(${TsepConfigPropFileNative} ${PROJECT_BINARY_DIR}/${TSEP_VS_PROP_FILE} @ONLY )
|
||||
|
||||
endif()
|
||||
|
||||
#- set the property
|
||||
set_target_properties(${ProjectName} PROPERTIES VS_USER_PROPS ../${TSEP_VS_PROP_FILE})
|
||||
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function(TSEP_ADD_AUTOBUILD_UNITTEST UnitExecutableName)
|
||||
get_property(local_prop GLOBAL PROPERTY TSEP_AUTOBUILD_UNITTEST)
|
||||
set(local_prop "${local_prop};${UnitExecutableName}")
|
||||
set_property(GLOBAL PROPERTY TSEP_AUTOBUILD_UNITTEST ${local_prop})
|
||||
#message("list " ${local_prop})
|
||||
endfunction()
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
function(TSEP_ADD_AUTOBUILD MainProjectName)
|
||||
|
||||
IF (INTIME)
|
||||
set(TSEP_AUTOBUILD_DIR "${PROJECT_BINARY_DIR}/../../AutoBuild/INtime")
|
||||
elseif (WIN32)
|
||||
set(TSEP_AUTOBUILD_DIR "${PROJECT_BINARY_DIR}/../../AutoBuild/Windows")
|
||||
elseif (LINUX)
|
||||
set(TSEP_AUTOBUILD_DIR "${PROJECT_BINARY_DIR}/../AutoBuild/linux")
|
||||
endif()
|
||||
|
||||
set(TSEP_AUTOBUILD_PROJECT ${MainProjectName})
|
||||
|
||||
get_property(local_prop GLOBAL PROPERTY TSEP_AUTOBUILD_UNITTEST)
|
||||
|
||||
message("-------------------------------------------------------")
|
||||
message(" Auto Build Solution name : " ${TSEP_AUTOBUILD_PROJECT})
|
||||
|
||||
# Create the auto build directory
|
||||
message(" Prepare auto build dir : " ${TSEP_AUTOBUILD_DIR})
|
||||
if(EXISTS ${TSEP_AUTOBUILD_DIR})
|
||||
file(REMOVE_RECURSE ${TSEP_AUTOBUILD_DIR})
|
||||
endif()
|
||||
file(MAKE_DIRECTORY ${TSEP_AUTOBUILD_DIR})
|
||||
file(MAKE_DIRECTORY ${TSEP_AUTOBUILD_DIR}/scripts)
|
||||
|
||||
# Copy the files for the build, os dependend
|
||||
IF (INTIME)
|
||||
configure_file(${TSEP_PROJECT_CMAKE}/AutoBuild/BuildVs2017INtimeProject.cmd ${TSEP_AUTOBUILD_DIR}/scripts COPYONLY)
|
||||
foreach (TSEP_AUTOBUILD_UNIT_EXE ${local_prop})
|
||||
if("${TSEP_AUTOBUILD_USED_UNITTEST}" STREQUAL "")
|
||||
set(TSEP_AUTOBUILD_USED_UNITTEST "${TSEP_AUTOBUILD_UNIT_EXE}")
|
||||
else()
|
||||
set(TSEP_AUTOBUILD_USED_UNITTEST "${TSEP_AUTOBUILD_USED_UNITTEST},${TSEP_AUTOBUILD_UNIT_EXE}")
|
||||
endif()
|
||||
endforeach()
|
||||
message(" Auto Build Unittest : " ${TSEP_AUTOBUILD_USED_UNITTEST})
|
||||
configure_file(${TSEP_PROJECT_CMAKE}/AutoBuild/BuildAllVS2017INtime.cmd ${TSEP_AUTOBUILD_DIR}/BuildAll.cmd @ONLY)
|
||||
elseif (WIN32)
|
||||
set(TSEP_AUTOBUILD_USED_UNITTEST "")
|
||||
configure_file(${TSEP_PROJECT_CMAKE}/AutoBuild/BuildVS2017Project.cmd ${TSEP_AUTOBUILD_DIR}/scripts COPYONLY)
|
||||
foreach (TSEP_AUTOBUILD_UNIT_EXE ${local_prop})
|
||||
if("${TSEP_AUTOBUILD_USED_UNITTEST}" STREQUAL "")
|
||||
set(TSEP_AUTOBUILD_USED_UNITTEST "${TSEP_AUTOBUILD_UNIT_EXE}")
|
||||
else()
|
||||
set(TSEP_AUTOBUILD_USED_UNITTEST "${TSEP_AUTOBUILD_USED_UNITTEST},${TSEP_AUTOBUILD_UNIT_EXE}")
|
||||
endif()
|
||||
endforeach()
|
||||
message(" Auto Build Unittest : " ${TSEP_AUTOBUILD_USED_UNITTEST})
|
||||
configure_file(${TSEP_PROJECT_CMAKE}/AutoBuild/BuildAllVS2017.cmd ${TSEP_AUTOBUILD_DIR}/BuildAll.cmd @ONLY)
|
||||
elseif (LINUX)
|
||||
configure_file(${TSEP_PROJECT_CMAKE}/AutoBuild/BuildLinuxProject.sh ${TSEP_AUTOBUILD_DIR}/scripts COPYONLY)
|
||||
configure_file(${TSEP_PROJECT_CMAKE}/AutoBuild/RunUnitTest.sh ${TSEP_AUTOBUILD_DIR}/scripts COPYONLY)
|
||||
foreach (TSEP_AUTOBUILD_UNIT_EXE ${local_prop})
|
||||
if("${TSEP_AUTOBUILD_USED_UNITTEST}" STREQUAL "")
|
||||
set(TSEP_AUTOBUILD_USED_UNITTEST "${TSEP_AUTOBUILD_UNIT_EXE}")
|
||||
else()
|
||||
set(TSEP_AUTOBUILD_USED_UNITTEST "${TSEP_AUTOBUILD_USED_UNITTEST},${TSEP_AUTOBUILD_UNIT_EXE}")
|
||||
endif()
|
||||
endforeach()
|
||||
message(" Auto Build Unittest : " ${TSEP_AUTOBUILD_USED_UNITTEST})
|
||||
configure_file(${TSEP_PROJECT_CMAKE}/AutoBuild/BuildAllLinux.sh ${TSEP_AUTOBUILD_DIR}/BuildAll.sh @ONLY)
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue