################################################################################# #this function builds a cmake patch files out of a list of patches found in Patch folder ################################################################################# function(PackageWriteMultiPatchFile outvar) set(mycommand "") #message("------------->${ARGN}<--------") foreach(p ${ARGN} ) if(WIN32) set(PATCH_COMMAND_LINE "${PATCH_PROGRAM} -p1 --binary -i ${Package_Dir}/Patch/${p}") else() set(PATCH_COMMAND_LINE "${PATCH_PROGRAM} -p1 -i ${Package_Dir}/Patch/${p}") endif() set(mycommand "${mycommand} execute_process(COMMAND ${PATCH_COMMAND_LINE} RESULT_VARIABLE status_code OUTPUT_VARIABLE log) if(NOT status_code EQUAL 0) message(FATAL_ERROR \"patch error in line: ${PATCH_COMMAND_LINE} status_code: \${status_code} log: \${log} \") endif() ") endforeach(p) set(${outvar} ${mycommand} PARENT_SCOPE) #debug_message("--->${mycommand}<--") endfunction(PackageWriteMultiPatchFile) function(PackageBinaryAdd) debug_message("!!!!! building ${PACKAGE} in ${download_subfolder} with depnds-->${Package_current_dependencies_effective_line}<--") ExternalProject_Add( ${PACKAGE}-GetSource SOURCE_DIR ${Package_Source_Dir} DOWNLOAD_DIR ${Package_Download_Dir} STAMP_DIR ${Package_Source_Stamp_Dir} ${Package_source_setup} CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" ) if(Package_current_dependencies_effective_line) set( Package_current_dependencies_effective_line ${Package_current_dependencies_effective_line} ${PACKAGE}-GetSource) else() set(Package_current_dependencies_effective_line DEPENDS ${PACKAGE}-GetSource) endif() ExternalProject_Add( ${PACKAGE} ${Package_std_dirs} DOWNLOAD_COMMAND "" INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory CONFIGURE_COMMAND "" BUILD_COMMAND "" ${Package_current_dependencies_effective_line} STEP_TARGETS build install ) endfunction(PackageBinaryAdd) function(PackageCmakeAdd) ExternalProject_Add( ${PACKAGE}-GetSource SOURCE_DIR ${Package_Source_Dir} DOWNLOAD_DIR ${Package_Download_Dir} STAMP_DIR ${Package_Source_Stamp_Dir} ${Package_source_setup} CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" ) if(Package_current_dependencies_effective_line) set( Package_current_dependencies_effective_line ${Package_current_dependencies_effective_line} ${PACKAGE}-GetSource) else() set(Package_current_dependencies_effective_line DEPENDS ${PACKAGE}-GetSource) endif() if(EXTERNAL_ASSEMBLY_BUILD_COMMAND) set(make_command BUILD_COMMAND ${EXTERNAL_ASSEMBLY_BUILD_COMMAND}) else() set(make_command "") endif() debug_message("Package ${PACKAGE} specific_cmake_args---->${Package_specific_cmake_args}<---") debug_message("Package ${PACKAGE} std_cmake_args---->${Package_std_cmake_args}<---") ExternalProject_Add( ${PACKAGE} ${Package_std_dirs} DOWNLOAD_COMMAND "" ${make_command} CMAKE_GENERATOR ${CMAKE_GENERATOR} CMAKE_ARGS ${Package_std_cmake_args} ${Package_specific_cmake_args} ${Package_current_dependencies_effective_line} STEP_TARGETS configure build install LOG_BUILD 1 LOG_INSTALL 1 LOG_CONFIGURE 1 ) endfunction(PackageCmakeAdd) function(PackageUnixConfigureAdd) message("Package -->${PACKAGE}<--InSource->${Package_InSource}<-") if(Package_InSource) set(conf_command_body ./configure --prefix=) else() if(Package_nosrcdir) set(conf_command_body /configure --prefix=) else() set(conf_command_body /configure --srcdir= --prefix=) endif() endif() if(Package_configure_flags) set(conf_command_body ${conf_command_body} ${Package_configure_flags}) endif() if(Package_PkgConfig) string(REPLACE ";" "@@" managed_conf_command_body "${conf_command_body}" ) set(conf_command CONFIGURE_COMMAND ${CMAKE_COMMAND} -Dmy_binary_dir:PATH= -Dmy_source_dir:PATH= -Dmy_install_dir:PATH= -Dmy_configure:STRING=${managed_conf_command_body} -P ${_mymoduledir}/pkgconfig_env.cmake) set(make_command_body make --jobs 4) string(REPLACE ";" "@@" managed_make_command_body "${make_command_body}" ) set(make_command BUILD_COMMAND ${CMAKE_COMMAND} -Dmy_binary_dir:PATH= -Dmy_source_dir:PATH= -Dmy_install_dir:PATH= -Dmy_configure:STRING=${managed_make_command_body} -P ${_mymoduledir}/pkgconfig_env.cmake) set(list_separator "LIST_SEPARATOR @@") else() set(conf_command CONFIGURE_COMMAND ${conf_command_body}) set(list_separator "") endif() debug_message("conf_command---->${conf_command}<---") ExternalProject_Add( ${PACKAGE}-GetSource SOURCE_DIR ${Package_Source_Dir} DOWNLOAD_DIR ${Package_Download_Dir} STAMP_DIR ${Package_Source_Stamp_Dir} ${Package_source_setup} UPDATE_COMMAND "" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" ) if(Package_current_dependencies_effective_line) set( Package_current_dependencies_effective_line ${Package_current_dependencies_effective_line} ${PACKAGE}-GetSource) else() set(Package_current_dependencies_effective_line DEPENDS ${PACKAGE}-GetSource) endif() ExternalProject_Add( ${PACKAGE} ${Package_std_dirs} ${Package_current_dependencies_effective_line} DOWNLOAD_COMMAND "" ${conf_command} ${make_command} ${list_separator} STEP_TARGETS configure build install LOG_BUILD 1 LOG_INSTALL 1 LOG_CONFIGURE 1 ) debug_message(" ExternalProject_Add( ${PACKAGE} ${Package_std_dirs} ${Package_current_dependencies_effective_line} DOWNLOAD_COMMAND "" ${conf_command} ${make_command} ${list_separator} STEP_TARGETS configure build install ) ") # ExternalProject_Add( # ${PACKAGE} # ${Package_std_dirs} # ${Package_current_dependencies_effective_line} # URL ${URL} # ${conf_command} # ${make_command} # ${list_separator} # # #CONFIGURE_COMMAND ./configure --prefix= # ) if(Package_InSource) ExternalProject_Add_Step(${PACKAGE} copy_source COMMAND ${CMAKE_COMMAND} -E copy_directory COMMENT "copying to " DEPENDEES download update patch DEPENDERS configure ) endif() # if(Package_PkgConfig) # ExternalProject_Add_Step(${PACKAGE} install_pkgconfig # COMMAND ${CMAKE_GENERATOR} install-pkgconfigDATA # COMMENT "installing pkgconfig" # DEPENDEES install # ) # endif() endfunction(PackageUnixConfigureAdd) function(PackageUnixAddCmakeVarsToConfigureFlags) if(CMAKE_C_FLAGS) set(Package_configure_flags ${Package_configure_flags} "CFLAGS=${CMAKE_C_FLAGS}") endif() if(CMAKE_C_COMPILER) set(Package_configure_flags ${Package_configure_flags} "CC=${CMAKE_C_COMPILER}") endif() if(CMAKE_CXX_FLAGS) set(Package_configure_flags ${Package_configure_flags} "CXXFLAGS=${CMAKE_CXX_FLAGS}") endif() if(CMAKE_CXX_COMPILER) set(Package_configure_flags ${Package_configure_flags} "CXX=${CMAKE_CXX_COMPILER}") endif() set(Package_configure_flags "${Package_configure_flags}" PARENT_SCOPE) endfunction(PackageUnixAddCmakeVarsToConfigureFlags) function(PackageUnixPkgConfigInstall LIBNAME PKGFILENAME) ExternalProject_Add_Step(${PACKAGE} install_pkgconfig COMMAND ${CMAKE_COMMAND} -Dprefix:PATH= -Dname:STRING=${PACKAGE} -Dversion:STRING=${VERSION} -Dlibname:STRING=${LIBNAME} -Dpkgfilename:string=${PKGFILENAME} -Dincludepostfix:string="${_includepostfix}" -P ${_mymoduledir}/pkgconfig_lib_configure.cmake COMMENT "installing pkgconfig" DEPENDEES install ) endfunction(PackageUnixPkgConfigInstall) message("!!!!!!!!!!!!!!!!!!!!!!!!!!uffffffaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") function(PackagePythonSetupSimpleAdd) PackageGetSource() debug_message(" ExternalProject_Add( ${PACKAGE} ${Package_std_dirs} ${Package_current_dependencies_effective_line} DOWNLOAD_COMMAND "" CONFIGURE_COMMAND "" BUILD_COMMAND ${PYTHON_EXECUTABLE} /setup.py build --build-base= INSTALL_COMMAND ${PYTHON_EXECUTABLE} /setup.py install --prefix= STEP_TARGETS configure build install ) ") ExternalProject_Add( ${PACKAGE} ${Package_std_dirs} ${Package_current_dependencies_effective_line} DOWNLOAD_COMMAND "" CONFIGURE_COMMAND "" BUILD_COMMAND ${CMAKE_COMMAND} -E chdir ${PYTHON_EXECUTABLE} setup.py build --build-base= INSTALL_COMMAND ${CMAKE_COMMAND} -E chdir ${PYTHON_EXECUTABLE} setup.py install --prefix= STEP_TARGETS configure build install LOG_BUILD 1 LOG_INSTALL 1 ) # file(TO_NATIVE_PATH ${EXTERNAL_ASSEMBLY_COMMON_PREFIX} _install_dir) # ExternalProject_Add( # ${PACKAGE} # ${Package_std_dirs} # URL ${URL} # URL_MD5 ${URL_MD5} # CONFIGURE_COMMAND "" # INSTALL_COMMAND ${CMAKE_COMMAND} -E chdir ${PYTHON_EXECUTABLE} setup.py build --build-base= install --prefix=${_install_dir} # BUILD_COMMAND "" # ) # message("INSTALL_COMMAND-->${CMAKE_COMMAND} -E chdir ${PYTHON_EXECUTABLE} setup.py build --build-base= install --prefix=${_install_dir}<----") endfunction(PackagePythonSetupSimpleAdd)