KDElibs for win32 Welcome KDE Libraries for Microsoft Windows Environments Jarosław Staniek js at iidea.pl.

Slides:



Advertisements
Similar presentations
® IBM Software Group © 2010 IBM Corporation What’s New in Profiling & Code Coverage RAD V8 April 21, 2011 Kathy Chan
Advertisements

Windows Deployment Services WDS for Large Scale Enterprises and Small IT Shops Presented By: Ryan Drown Systems Administrator for Krannert.
Chapter 8 Operating Systems and Utility Programs.
Chapter Apache Installation in Linux- Mandrake. Acknowledgment The following information has been obtained directly from
Linux GUI X-Windows System. X-Windows System A stable and extremely powerful GUI system that provides a complete Client/Server framework. The X-org foundation.
Operating Systems.
PaperCut NG Chris Dance. Copyright © PaperCut Software Pty. Ltd. 2 Overview Overview of PaperCut NG Why we offer a Mac Version The story of our.
Types of software. Sonam Dema..
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
.NET On A Shoe String By: Patrick Brannen Lead Developer iDevCo, Inc.
Open Office Writer Computer Training Programme Speaker Kumardeep Chaudhary 17th September 2014 (Wednesday)
Oct ROOT 2002, CERN, Geneva Qt-Based Implementation of Low Level ROOT Graphical Layer By V.Fine.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Lesson 4 Computer Software
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Apache Tomcat Web Server SNU OOPSLA Lab. October 2005.
Hardware vs. Software Computer systems consist of both hardware and software. Hardware refers to anything you can physically touch. Keyboards, mice, monitors,
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
LINUX System : Lecture 3 Vmware, Cygwin, LINUX installation Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University.
May 10, 2012 Lloyd Moore, President/Owner. Quick Start Video Building Mobility 1.2 SDK Emulator Quirks Installing On A Device Summary Overview.
Subversion, an Open Source Version Control System An Introduction.
CONNECT: Install Webinar for Code-A-Thon April 20th, 2010.
Introducing NativeScript [Pavel Kolev Software Telerik: a Progress company]
Guideline: How to build AMSS source code? History: 01/02/ Make Draft 05/02/2010 – Release /02/2010 – Updated.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Mosflm & iMosflm (1) Some numbers... (2) Mosflm (3) iMosflm.
Developing C/C++ applications with the Eclipse CDT David Gallardo.
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
1 Software Configuration Management (SCM) and Software Reuse Presented By: Edmund Leng (HT052446J) Choo Zhi Min (HT052430X)
Liferay Installation Prepared by: Do Xuan Hai 8 August 2011.
IT320 OPERATING SYSTEM CONCEPTS Unit 3: Welcome to Linux September 2012 Kaplan University 1.
GAM666 – Introduction To Game Programming ● DirectX is implemented as a collection of COM objects ● To use a DirectX program, the user must have the correct.
GNOME, KDE and X Windows. The GNOME Project was started in 1997 to produce a free (as in freedom) desktop environment. GNU Network Object Model Environment.
CMap Version 0.16 Ben Faga. CMap CMap Version 0.16 Bug fixes and code optimizations More intuitive menu system Asynchronous loading of comparative map.
1 MSTE Visual SourceSafe For more information, see:
Open Solutions for a Changing World™ Copyright 2005, Data Access Worldwide June 6-9, 2005 Key Biscayne, Florida 1 Application Deployment Stephen W. Meeley.
CONTENT  Introduction Introduction  Operating System (OS) Operating System (OS) Operating System (OS)  Summary Summary  Application Software Application.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Transition to SVN server: follow up P.Hristov 24/01/2008.
Gorman, Stubbs, & CEP Inc. 1 Introduction to Operating Systems Lesson 8 Linux.
IBM Express Runtime Quick Start Workshop © 2007 IBM Corporation Deploying a Solution.
ITP 109 Week 2 Trina Gregory Introduction to Java.
This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses. ©Copyright Network Development Group Module 01 Introduction.
CHAPTER 2 COMPUTER SOFTWARE. LEARNING OUTCOMES At the end of this class, students should be able to:  Explain the significance of software  Define and.
Building programs LinuxChix-KE. What happens in your CPU? ● It executes a small set of instructions called "machine code" ● Each instruction is just a.
Jarosław Staniek, aKademy 2007 Kexi - Data(base) Environment Universal Data Layer for KDE.
1 Creative Innovation – Customer Satisfaction – Continual Quality Improvement Accessing and Building Asterisk SCF.
Sebastian Kügler, FrOSCon 2006 Holger Schröder, FOSDEM 2008 KDE 4 on MS Windows Outline: - people, history - demo - installer - emerge - compilers - discussion.
KDE4 (libs, apps) on windows. What? ● KDElibs ● KDE apps ● Definitely not the whole desktop (even if we're going to have infinite resources :) Why? ●
Introduction to threads
IT320 Operating System Concepts
Development Environment
OPERATING SYSTEM CONCEPT AND PRACTISE
Chapter 4: Threads.
PowerShell Introduction Copyright © 2016 – Curt Hill.
What is Apertis? Apertis is a versatile open source infrastructure tailored to the automotive needs and fit for a wide variety of electronic devices.
The Right Selective Adoption Strategy for Greater ROI
5.0 : Windows Operating System
Discussion about 'Shellshock' fixes--Ubuntu and OS X
Fun with Reporting Services Tools
Introduction of Week 3 Assignment Discussion
Mobile Application Development with MeeGo™ - Programming with SDK
Computer Science I CSC 135.
Chapter 2: The Linux System Part 1
1/14/2019 3:57 AM © 2004 Microsoft Corporation. All rights reserved.
Overview Unit testing Building Version control.
Preparation for Assignment 2
Running C# in the browser
OPC UA and EPICS Introduction
Presentation transcript:

KDElibs for win32 Welcome KDE Libraries for Microsoft Windows Environments Jarosław Staniek js at iidea.pl

KDElibs for win32 Overview 1. History 2. Goals && Assumptions 3. Current State 4. Side Effects && Benefits 5. Plans && Dreams

KDElibs for win32 History: Before March 2003 KDE on Cygwin only existed for win32 Some kdelibs (e.g. KMDI), and apps had ifdef'd support for Qt-only environment KDE On Cygwin

KDElibs for win32 History: March 2003 Qt-KDE Wrapper (QKW) Project started for KDE 3.1 by Jarosław Staniek, sponsored by OpenOffice Polska, a side effect of porting Kexi to win32

KDElibs for win32 History: September 2004 QKW source code merged with KDE 3.2 sources, renamed to KDElibs for win32 Now it resides in KDE Trunk as one of targets KFind using old good HighColor style on even older win98.

KDElibs for win32 Goals Compile and run existing KDE applications natively under win32 Reduce a need for Qt-only code (where reasonable) Make public API of KDE libraries highly X11-independent Allow to use win32 as application development, without any impact on portability

KDElibs for win32 Anti-goals KDE Desktop on win32 as a replacement for it's original desktop Certain hacks can be illegal or technically impossible Users not being comfortable with win32 desktop look and feel are free just to switch to Linux/Unix Injecting some WIN API to KDE libs API

KDElibs for win32 Reuse or mimic win32 GUI look & feel where possible (if this doesn't affect KDE libs API). Examples: reuse (or copy) win32 dialogs, eg. file dialogs keep DOS-like file system paths (trying to force win32 users to comply with UNIX feel on win32 looks equally wrong as running native win32 apps on UNIX) for example, KURL is already prepared for this Assumptions

KDElibs for win32 Assumptions (2) Map system settings to KDE libs API structures like KGlobalSettings, MIME types example: user documents folder's path could always be accessed by KGlobalSettings::documentPath() the Windows Registry is usually used for storage Some Unix/Linux-specific features can be hard to port, but not so important this can also help in Linux promotion

KDElibs for win32 Developer Tools – Current State C++ compiler: msvc.net (7.1) Borland's or GNU compilers not tested Qt required: Qt or later, like on Linux (GPL'd Qt3 not tested) Hardcoded.pro files for qmake Cygwin used as shell Msys (from Mingw) not tested No support for compilation under IDE(s), but it can be used for convenient debugging

KDElibs for win32 Developer Tools – Current State (2) A few shell scripts, e.g. kmoc for creating.moc files Subversion for win32 Predefined support for release and debug targets (debug targets have _d name prefix assigned, so both targets can coexist)

KDElibs for win32 Main Installation Steps Obtaining proper compiler Qt installation and minor tweaking Cygwin installation Obtaining KDElibs source code (from SVN) Obtaining KDE runtime files (.desktop files, settings, icons) Setting environment variables Building KDElibs

KDElibs for win32 Developer Tools - Specifics No 'install' target: binaries are compiled directly to $KDEDIR/bin, $KDEDIR/lib, $KDEDIR/lib/kde3 win32-specific code resides in kdelibs/win/.pro files for KDElibs are kept separately in kdelibs/win/pro_files/ and are copied if needed to kdelibs/ subdirs.la libtool files are needed for KDE modules, come with runtime files (this requirement will be removed)

KDElibs for win32 What's Ported? - Libraries KDElibs 3.4 and newer libltdl, kdecore, kdeui, dcop (including DCOP server and tools), kded, kio, interfaces/ktexteditor, kabc, kate, kdewidgets, kioslave, kmdi, kparts, kresources kdefx; KDE Styles work (some developers used this for Qt-only apps on win32) Ifdef'd things network functionality in kio KFileDialog needs to be replaced with QFileDialog on win32

KDElibs for win32 What's Ported? - Applications Kexi and KFormDesigner Other KOffice apps (not in SVN yet) KBabel (not in SVN yet) ShowImg (image viewer) Some small apps for testing, eg. KFind's GUI

KDElibs for win32 Side Effects of Porting to win32 An opportunity to realize of how good quality KDElibs code is: many things compiled without changes to code About two dozens of hard to find bugs only identified thanks to using non-gcc/gdb tools Good starting point to make API even more flexible in some aspects (example: KFileDialog, printing)

KDElibs for win32 Side Effects of Porting to win32 (2) Finally, support for some freedesktop.org specifications on win32 may be blessed by systems integrators KDElibs for Mac OS X benefits from more portable KDElibs code It's hard to find a full-time paid job related to KDE apps for Linux, but it's possible one related to KDE apps for Linux and Windows.

KDElibs for win32 Opportunity: getting thousands of new KDE users on win32 platform raising interest in KDE libraries itself and also contribution to popular KDE applications more testers more doc authors finally, who knows: more developers Benefits, Issues

KDElibs for win32 Benefits, Issues (2) Not everyone agrees with these points: Strategically, operating systems itself are becoming irrelevant for users: e.g. about half of the world didn't upgrade to winXP It's applications integrated within desktop environment what counts Smooth transition with smaller steps is important on desktop (see Firefox and OpenOffice.org story) Many users give up if they couldn't quickly switch to a single FOSS application they want, keeping their current environment It's no more just FOSS vs Proprietary: it's FOSS vs FOSS vital competition

KDElibs for win32 Porting Plans Libraries updates for Qt4/win32 khtml, kjs (in progress) kdeprint Applications entire KOffice Kontact

KDElibs for win32 Plans for Developer's Tools (SDK) Switching to SCons (bksys) portable build system to maximize developers' convenience Builtin support and integration with popular compilers Define and maintain "official" binary releases avoid problems with ABI (introduction of Qt4 complicated decisions a bit) synchronize with releases for UNIX version Installer for SDK Installation toolkit for KDE apps on win32, runtime

KDElibs for win32 Other TODOs KDE's System Configuration Cache daemon (for now, kbuildsycoca app has to be run by hand with a simple dialog to refresh environment) User's Documentation: additional win32-specific content may be needed for users

KDElibs for win32 David Faure, Harri Porten discussion, advices and reviewing endless stream of patches Andreas Roth DCOP Client/Server port Acknowledgements

KDElibs for win32 Thank You More Information Project Documentation for win32 Original Qt-KDE Wrapper Home KDE on Cygwin Project GPLed Qt3 for win32 old page: