-
Notifications
You must be signed in to change notification settings - Fork 885
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix update branding logic to make release builds faster #16033
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -252,6 +252,24 @@ const util = { | |
fileMap.add([path.join(config.braveCoreDir, 'ui', 'webui', 'resources', 'css', 'text_defaults_md.css'), | ||
path.join(config.srcDir, 'ui', 'webui', 'resources', 'css', 'text_defaults_md.css')]) | ||
|
||
let explicitSourceFiles = new Set() | ||
if (process.platform === 'darwin') { | ||
// Set proper mac app icon for channel to chrome/app/theme/mac/app.icns. | ||
// Each channel's app icons are stored in brave/app/theme/$channel/app.icns. | ||
// With this copying, we don't need to modify chrome/BUILD.gn for this. | ||
const iconSource = path.join(braveAppDir, 'theme', 'brave', 'mac', config.channel, 'app.icns') | ||
const iconDest = path.join(chromeAppDir, 'theme', 'brave', 'mac', 'app.icns') | ||
explicitSourceFiles[iconDest] = iconSource | ||
|
||
// Set proper branding file. | ||
let branding_file_name = 'BRANDING' | ||
if (config.channel) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. same as above, we should always copy all the files or this is not accurate #16033 (comment) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. if we remove the channel dependency here then we can update the branding at sync time and only update on build when needed There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. same here. The destination file is a single file, it doesn't depend on the channel, so we can't copy "all the files" into the same destination file.. I have a task to rework this: brave/brave-browser#38309 |
||
branding_file_name = branding_file_name + '.' + config.channel | ||
const brandingSource = path.join(braveAppDir, 'theme', 'brave', branding_file_name) | ||
const brandingDest = path.join(chromeAppDir, 'theme', 'brave', 'BRANDING') | ||
explicitSourceFiles[brandingDest] = brandingSource | ||
} | ||
|
||
for (const [source, output] of fileMap) { | ||
if (!fs.existsSync(source)) { | ||
console.warn(`Warning: The following file-system entry was not found for copying contents to a chromium destination: ${source}. Consider removing the entry from the file-map, or investigating whether the correct source code reference is checked out.`) | ||
|
@@ -267,8 +285,9 @@ const util = { | |
sourceFiles = [source] | ||
} | ||
|
||
for (const sourceFile of sourceFiles) { | ||
let destinationFile = path.join(output, path.relative(source, sourceFile)) | ||
for (let sourceFile of sourceFiles) { | ||
const destinationFile = path.join(output, path.relative(source, sourceFile)) | ||
sourceFile = explicitSourceFiles[destinationFile] || sourceFile | ||
if (!fs.existsSync(destinationFile) || | ||
util.calculateFileChecksum(sourceFile) != util.calculateFileChecksum(destinationFile)) { | ||
fs.copySync(sourceFile, destinationFile) | ||
|
@@ -277,31 +296,6 @@ const util = { | |
} | ||
} | ||
|
||
if (process.platform === 'darwin') { | ||
// Copy proper mac app icon for channel to chrome/app/theme/mac/app.icns. | ||
// Each channel's app icons are stored in brave/app/theme/$channel/app.icns. | ||
// With this copying, we don't need to modify chrome/BUILD.gn for this. | ||
const iconSource = path.join(braveAppDir, 'theme', 'brave', 'mac', config.channel, 'app.icns') | ||
const iconDest = path.join(chromeAppDir, 'theme', 'brave', 'mac', 'app.icns') | ||
if (!fs.existsSync(iconDest) || | ||
util.calculateFileChecksum(iconSource) != util.calculateFileChecksum(iconDest)) { | ||
console.log('copy app icon') | ||
fs.copySync(iconSource, iconDest) | ||
} | ||
|
||
// Copy branding file | ||
let branding_file_name = 'BRANDING' | ||
if (config.channel) | ||
branding_file_name = branding_file_name + '.' + config.channel | ||
|
||
const brandingSource = path.join(braveAppDir, 'theme', 'brave', branding_file_name) | ||
const brandingDest = path.join(chromeAppDir, 'theme', 'brave', 'BRANDING') | ||
if (!fs.existsSync(brandingDest) || | ||
util.calculateFileChecksum(brandingSource) != util.calculateFileChecksum(brandingDest)) { | ||
console.log('copy branding file') | ||
fs.copySync(brandingSource, brandingDest) | ||
} | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this was always rewriting the logic was:
now we use channel-specific files without unnecessary overwrites. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. running
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
yes, that was always the case. to fix this we need to have the right branding dependency done via GN, hopefully this task will align what we have in the right direction: brave/brave-browser#38309 |
||
if (config.targetOS === 'android') { | ||
|
||
let braveOverwrittenFiles = new Set(); | ||
|
@@ -405,7 +399,7 @@ const util = { | |
} | ||
}, | ||
|
||
touchOverriddenFiles: () => { | ||
touchOverriddenChromiumSrcFiles: () => { | ||
console.log('touch original files overridden by chromium_src...') | ||
|
||
// Return true when original file of |file| should be touched. | ||
|
@@ -465,10 +459,9 @@ const util = { | |
}) | ||
}, | ||
|
||
touchOverriddenFilesAndUpdateBranding: () => { | ||
util.touchOverriddenFiles() | ||
touchOverriddenFiles: () => { | ||
util.touchOverriddenChromiumSrcFiles() | ||
util.touchOverriddenVectorIconFiles() | ||
util.updateBranding() | ||
}, | ||
|
||
// Chromium compares pre-installed midl files and generated midl files from IDL during the build to check integrity. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why aren't we just copying all channels here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
source file depends on the channel, but the destination file does not.