meson.build
    
    ASCII text
        
            1
            gtk4_launch = find_program('gtk4-launch', required: false) 
        
            2
             
        
            3
            if get_option('gtk4_version') != '' 
        
            4
              gtk4_full_version = get_option('gtk4_version') 
        
            5
            elif gtk4_launch.found() 
        
            6
              gtk4_full_version = run_command(gtk4_launch, '--version').stdout() 
        
            7
            else 
        
            8
              message('gtk4-launch not found, using styles for last gtk4 version availible') 
        
            9
              gtk4_full_version = '4.0' 
        
            10
            endif 
        
            11
             
        
            12
            gtk4_version_array = gtk4_full_version.split('.') 
        
            13
            if gtk4_version_array[1].to_int().is_even() 
        
            14
              gtk4_version = gtk4_version_array[0] + '.' + gtk4_version_array[1] 
        
            15
            else 
        
            16
              gtk4_version = gtk4_version_array[0] + '.' + (gtk4_version_array[1].to_int() + 1).to_string() 
        
            17
            endif 
        
            18
            message('Set gtk4 version to ' + gtk4_version) 
        
            19
             
        
            20
            gtk4_scss_depend_files = files([ 
        
            21
              '../_color-palette.scss', 
        
            22
              '../_shadow.scss', 
        
            23
              '../_theme.scss', 
        
            24
              '../_theme-color.scss', 
        
            25
              '../gtk-3.0/sass/_public-colors.scss', 
        
            26
              'sass/_common.scss', 
        
            27
              'sass/_drawing.scss', 
        
            28
              'sass/_gtk.scss', 
        
            29
            ]) 
        
            30
             
        
            31
            foreach theme: themes 
        
            32
              gtk4_dir = join_paths(theme['dir'], 'gtk-4.0') 
        
            33
             
        
            34
              gtk4_variants = [ 
        
            35
                'gtk', 
        
            36
              ] 
        
            37
             
        
            38
              # Only non-dark themes need a dark variant. 
        
            39
              if theme['color'] != '-dark' 
        
            40
                gtk4_variants += 'gtk-dark' 
        
            41
              endif 
        
            42
             
        
            43
              install_subdir( 
        
            44
                '../gtk-3.0/assets', 
        
            45
                install_dir: gtk4_dir, 
        
            46
              ) 
        
            47
             
        
            48
              install_subdir( 
        
            49
                '../gtk-3.0/icons', 
        
            50
                install_dir: gtk4_dir, 
        
            51
              ) 
        
            52
             
        
            53
              # 
        
            54
              # SCSS 
        
            55
              # 
        
            56
             
        
            57
              gtk4_scss_conf = configuration_data() 
        
            58
              gtk4_scss_conf.set('dark_theme', theme['scss_dark_theme']) 
        
            59
              gtk4_scss_conf.set('light_topbar', theme['scss_light_topbar']) 
        
            60
              gtk4_scss_conf.set('compact', theme['scss_compact']) 
        
            61
              gtk4_scss_conf.set('version', gtk4_version) 
        
            62
              gtk4_scss_conf.set('current_source_dir', meson.current_source_dir()) 
        
            63
             
        
            64
              foreach gtk4_variant: gtk4_variants 
        
            65
                gtk4_temp_name = '@0@.gtk4.@1@'.format(theme['name'], gtk4_variant) 
        
            66
             
        
            67
                # Configure SCSS file 
        
            68
                gtk4_scss = configure_file( 
        
            69
                  input: '@0@.scss.in'.format(gtk4_variant), 
        
            70
                  output: '@0@.scss'.format(gtk4_temp_name), 
        
            71
                  configuration: gtk4_scss_conf, 
        
            72
                ) 
        
            73
             
        
            74
                # Generate CSS file 
        
            75
                gtk4_css = custom_target( 
        
            76
                  '@0@.css'.format(gtk4_temp_name), 
        
            77
                  input: gtk4_scss, 
        
            78
                  output: '@0@.css'.format(gtk4_temp_name), 
        
            79
                  command: [sass, sass_opts, '@INPUT@', '@OUTPUT@'], 
        
            80
                  depend_files: gtk4_scss_depend_files, 
        
            81
                  build_by_default: true, 
        
            82
                ) 
        
            83
             
        
            84
                # Install it while renaming to a valid name 
        
            85
                meson.add_install_script( 
        
            86
                  sh, '-c', 'cp "@0@" "@1@"'.format( 
        
            87
                    gtk4_css.full_path(), 
        
            88
                    join_paths('$MESON_INSTALL_DESTDIR_PREFIX', gtk4_dir, '@0@.css'.format(gtk4_variant)), 
        
            89
                  ), 
        
            90
                ) 
        
            91
              endforeach 
        
            92
            endforeach 
        
            93