Skip to content

Commit 45467c0

Browse files
committed
initial commit
0 parents  commit 45467c0

File tree

23 files changed

+2068
-0
lines changed

23 files changed

+2068
-0
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*
2+

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "gtk+"]
2+
path = gtk+
3+
url = git://git.gnome.org/gtk+

CMakeLists.txt

+88
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
cmake_minimum_required(VERSION 2.8)
2+
project(gtkmm)
3+
4+
SET(CPACK_PACKAGE_VERSION_MAJOR 3)
5+
SET(CPACK_PACKAGE_VERSION_MINOR 0)
6+
SET(CPACK_PACKAGE_VERSION_PATCH 1)
7+
set( CPACK_GENERATOR "ZIP" )
8+
INCLUDE(CPack)
9+
10+
# Use this or uncomment next line for release build "\Program Files\CMake 2.8\bin\cmake.exe" -D CMAKE_BUILD_TYPE=RELEASE ..
11+
#set(CMAKE_BUILD_TYPE RELEASE CACHE STRING "Forced release" FORCE)
12+
13+
if (MSVC80)
14+
set (CMAKE_DEBUG_POSTFIX "-vc80-d")
15+
set (CMAKE_RELEASE_POSTFIX "-vc80")
16+
set(EXTRA "MSVC_Net2005")
17+
elseif (MSVC90)
18+
set (CMAKE_DEBUG_POSTFIX "-vc90-d")
19+
set (CMAKE_RELEASE_POSTFIX "-vc90")
20+
set(EXTRA "MSVC_Net2008")
21+
elseif (MSVC10)
22+
set (CMAKE_DEBUG_POSTFIX "-vc100-d")
23+
set (CMAKE_RELEASE_POSTFIX "-vc100")
24+
set(EXTRA "MSVC_Net2010")
25+
endif (MSVC80)
26+
27+
set(POSTFIX ${CMAKE_${CMAKE_BUILD_TYPE}_POSTFIX})
28+
message("Postfix is ${POSTFIX}")
29+
30+
set (GlibEtcInstallRoot S:/obs/usr/i686-w64-mingw32/sys-root/mingw)
31+
set (CMAKE_INSTALL_PREFIX ${GlibEtcInstallRoot} CACHE PATH "Override" FORCE)
32+
33+
add_definitions( /wd4273 /wd4290 /wd4250 )
34+
35+
include_directories(
36+
${GlibEtcInstallRoot}/include
37+
${GlibEtcInstallRoot}/include/glib-2.0
38+
${GlibEtcInstallRoot}/lib/glib-2.0/include
39+
${GlibEtcInstallRoot}/include/atk-1.0
40+
${GlibEtcInstallRoot}/include/pango-1.0
41+
${GlibEtcInstallRoot}/include/cairo
42+
${GlibEtcInstallRoot}/include/gdk-pixbuf-2.0
43+
libsigc++
44+
libsigc++/${EXTRA}
45+
glibmm/glib
46+
glibmm/${EXTRA}/glibmm
47+
glibmm/gio
48+
glibmm/${EXTRA}/giomm
49+
atkmm/atk
50+
${GlibEtcInstallRoot}/include/freetype2
51+
cairomm
52+
cairomm/${EXTRA}/cairomm
53+
pangomm/pango
54+
pangomm/${EXTRA}/pangomm
55+
gtk+
56+
gtkmm/gdk
57+
gtkmm/${EXTRA}/gdkmm
58+
gtkmm/gtk
59+
gtkmm/${EXTRA}/gtkmm
60+
)
61+
62+
link_directories(
63+
${GlibEtcInstallRoot}/lib
64+
)
65+
66+
set(SIGC_VERSION 2.2)
67+
set(GLIBMM_VERSION 2.28)
68+
set(ATKMM_VERSION 2.22)
69+
set(CAIROMM_VERSION 1.10)
70+
set(PANGOMM_VERSION 2.28)
71+
set(GTKMM_VERSION 3.0)
72+
set(GtkApiVersion 3.1)
73+
74+
add_subdirectory(libsigc++/sigc++)
75+
add_subdirectory(glibmm/${EXTRA}/gendef)
76+
add_subdirectory(glibmm/glib/glibmm)
77+
add_subdirectory(glibmm/gio/giomm)
78+
add_subdirectory(atkmm/atk/atkmm)
79+
add_subdirectory(cairomm/cairomm)
80+
add_subdirectory(pangomm/pango/pangomm)
81+
add_subdirectory(gtk+)
82+
add_subdirectory(gtkmm/gdk/gdkmm)
83+
add_subdirectory(gtkmm/gtk/gtkmm)
84+
add_subdirectory(gtkmm/demos/gtk-demo)
85+
86+
configure_file(MSVC/gtkmm3.vsprops.in ${CMAKE_CURRENT_SOURCE_DIR}/MSVC/gtkmm3${POSTFIX}.vsprops @ONLY)
87+
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/MSVC/gtkmm3${POSTFIX}.vsprops DESTINATION "MSVC")
88+
#set(RuntimeLibrary 3) # for debug

README.md

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# CMake files for native GTKMM 3 build with MS VC++ on Win32 platform
2+
3+
## Why
4+
5+
Native GTKMM builds for Win32 with MS VC++ lag behind those with gcc.
6+
7+
## How
8+
9+
* [Use OBS](http://mail.gnome.org/archives/gtk-list/2011-March/msg00111.html) (openSUSE Build Service) for all prerequisites
10+
* You'll need perl to build gtk+ git submodule
11+
* It is complicated to build MM counterpart from git on Win32 as they heavily use m4 macro processor
12+
* Download source code release for corresponding subfolders
13+
14+
## Problems
15+
16+
* There may be glitches with path names
17+
* Some stuff from OBS may be broken

atkmm/atk/atkmm/CMakeLists.txt

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
set(ATKMM_SRCS
2+
action.cc
3+
component.cc
4+
document.cc
5+
editabletext.cc
6+
hyperlink.cc
7+
hypertext.cc
8+
image.cc
9+
implementor.cc
10+
init.cc
11+
noopobject.cc
12+
object.cc
13+
objectaccessible.cc
14+
relation.cc
15+
relationset.cc
16+
selection.cc
17+
stateset.cc
18+
streamablecontent.cc
19+
table.cc
20+
text.cc
21+
value.cc
22+
wrap_init.cc
23+
)
24+
25+
add_library(atkmm-${ATKMM_VERSION} SHARED ${ATKMM_SRCS} atkmm.def ../../${EXTRA}/atkmm/atkmm.rc)
26+
27+
add_custom_command (OUTPUT atkmm.def
28+
COMMAND ECHO Will be generated later > atkmm.def
29+
)
30+
add_custom_command(TARGET atkmm-${ATKMM_VERSION} PRE_LINK
31+
COMMAND gendef ${CMAKE_CURRENT_BINARY_DIR}/atkmm.def atkmm-${ATKMM_VERSION}${POSTFIX}.dll ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/atkmm-${ATKMM_VERSION}.dir/*.obj
32+
)
33+
34+
target_link_libraries(atkmm-${ATKMM_VERSION} atk-1.0.lib glibmm-${GLIBMM_VERSION} giomm-${GLIBMM_VERSION} sigc-${SIGC_VERSION})
35+
36+
install(TARGETS atkmm-${ATKMM_VERSION}
37+
LIBRARY DESTINATION "lib"
38+
ARCHIVE DESTINATION "lib"
39+
RUNTIME DESTINATION "bin")
40+
41+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/atkmm-${ATKMM_VERSION}${POSTFIX}.pdb DESTINATION "bin" CONFIGURATIONS DEBUG)
42+
43+
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../../${EXTRA}/atkmm/atkmmconfig.h DESTINATION "lib/atkmm-${ATKMM_VERSION}/include")
44+
45+
install(DIRECTORY ../ DESTINATION include/atkmm-${ATKMM_VERSION}/ FILES_MATCHING PATTERN "*.h"
46+
PATTERN "src" EXCLUDE
47+
PATTERN "private" EXCLUDE
48+
PATTERN "PaxHeaders*" EXCLUDE
49+
)
50+
#install(DIRECTORY ./ DESTINATION include/atkmm-${ATKMM_VERSION}/atkmm/ FILES_MATCHING PATTERN "*.h")

cairomm/cairomm/CMakeLists.txt

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
set(CAIROMM_SRCS
2+
context.cc
3+
context_surface_quartz.cc
4+
context_surface_win32.cc
5+
context_surface_xlib.cc
6+
device.cc
7+
exception.cc
8+
fontface.cc
9+
fontoptions.cc
10+
matrix.cc
11+
path.cc
12+
pattern.cc
13+
private.cc
14+
quartz_font.cc
15+
quartz_surface.cc
16+
region.cc
17+
scaledfont.cc
18+
surface.cc
19+
win32_font.cc
20+
win32_surface.cc
21+
xlib_surface.cc
22+
)
23+
24+
add_definitions( -DCAIROMM_BUILD )
25+
add_library(cairomm-${CAIROMM_VERSION} SHARED ${CAIROMM_SRCS} cairomm.def ../${EXTRA}/cairomm/cairomm.rc)
26+
27+
add_custom_command (OUTPUT cairomm.def
28+
COMMAND ECHO Will be generated later > cairomm.def
29+
)
30+
add_custom_command(TARGET cairomm-${CAIROMM_VERSION} PRE_LINK
31+
COMMAND gendef ${CMAKE_CURRENT_BINARY_DIR}/cairomm.def cairomm-${CAIROMM_VERSION}${POSTFIX}.dll ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/cairomm-${CAIROMM_VERSION}.dir/*.obj
32+
)
33+
34+
target_link_libraries(cairomm-${CAIROMM_VERSION} cairo.lib cairo-gobject.lib sigc-${SIGC_VERSION})
35+
36+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cairomm-${CAIROMM_VERSION}${POSTFIX}.pdb DESTINATION "bin" CONFIGURATIONS DEBUG)
37+
38+
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../${EXTRA}/cairomm/cairommconfig.h DESTINATION "lib/cairomm-${CAIROMM_VERSION}/include")
39+
40+
install(TARGETS cairomm-${CAIROMM_VERSION}
41+
LIBRARY DESTINATION "lib"
42+
ARCHIVE DESTINATION "lib"
43+
RUNTIME DESTINATION "bin")
44+
45+
install(DIRECTORY ./ DESTINATION include/cairomm-${CAIROMM_VERSION}/cairomm/ FILES_MATCHING PATTERN "*.h"
46+
PATTERN "PaxHeaders*" EXCLUDE
47+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
add_definitions( /wd4996 )
2+
add_executable(gendef gendef.cc)

glibmm/gio/giomm/CMakeLists.txt

+110
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
set(GIOMM_SRCS
2+
appinfo.cc
3+
asyncinitable.cc
4+
asyncresult.cc
5+
bufferedinputstream.cc
6+
bufferedoutputstream.cc
7+
cancellable.cc
8+
contenttype.cc
9+
credentials.cc
10+
datainputstream.cc
11+
dataoutputstream.cc
12+
dbusaddress.cc
13+
dbusauthobserver.cc
14+
dbusconnection.cc
15+
dbuserror.cc
16+
dbuserrorutils.cc
17+
dbusinterfacevtable.cc
18+
dbusintrospection.cc
19+
dbusmessage.cc
20+
dbusmethodinvocation.cc
21+
dbusownname.cc
22+
dbusproxy.cc
23+
dbusserver.cc
24+
dbussubtreevtable.cc
25+
dbusutils.cc
26+
dbuswatchname.cc
27+
drive.cc
28+
emblem.cc
29+
emblemedicon.cc
30+
enums.cc
31+
error.cc
32+
file.cc
33+
fileattributeinfo.cc
34+
fileattributeinfolist.cc
35+
fileenumerator.cc
36+
fileicon.cc
37+
fileinfo.cc
38+
fileinputstream.cc
39+
fileiostream.cc
40+
filemonitor.cc
41+
filenamecompleter.cc
42+
fileoutputstream.cc
43+
filterinputstream.cc
44+
filteroutputstream.cc
45+
icon.cc
46+
inetaddress.cc
47+
inetsocketaddress.cc
48+
init.cc
49+
initable.cc
50+
inputstream.cc
51+
iostream.cc
52+
loadableicon.cc
53+
memoryinputstream.cc
54+
memoryoutputstream.cc
55+
mount.cc
56+
mountoperation.cc
57+
networkaddress.cc
58+
networkservice.cc
59+
outputstream.cc
60+
proxy.cc
61+
proxyaddress.cc
62+
proxyresolver.cc
63+
resolver.cc
64+
seekable.cc
65+
settings.cc
66+
slot_async.cc
67+
socket.cc
68+
socketaddress.cc
69+
socketaddressenumerator.cc
70+
socketclient.cc
71+
socketconnectable.cc
72+
socketconnection.cc
73+
socketcontrolmessage.cc
74+
socketlistener.cc
75+
socketservice.cc
76+
srvtarget.cc
77+
tcpconnection.cc
78+
themedicon.cc
79+
threadedsocketservice.cc
80+
volume.cc
81+
volumemonitor.cc
82+
wrap_init.cc
83+
)
84+
85+
add_definitions( -DGIOMM_DLL -DGIOMM_BUILD -D_WINDLL )
86+
add_library(giomm-${GLIBMM_VERSION} SHARED ${GIOMM_SRCS} giomm.def ../../${EXTRA}/giomm/giomm.rc)
87+
target_link_libraries(giomm-${GLIBMM_VERSION} glib-2.0.lib gobject-2.0.lib gmodule-2.0.lib
88+
gio-2.0.lib sigc-${SIGC_VERSION} glibmm-${GLIBMM_VERSION})
89+
90+
#add_custom_target(giommdef DEPENDS gendef giomm.def )
91+
add_custom_command (OUTPUT giomm.def
92+
COMMAND ECHO Will be generated later > giomm.def
93+
)
94+
add_custom_command(TARGET giomm-${GLIBMM_VERSION} PRE_LINK
95+
COMMAND gendef ${CMAKE_CURRENT_BINARY_DIR}/giomm.def giomm-${GLIBMM_VERSION}${POSTFIX}.dll ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/giomm-${GLIBMM_VERSION}.dir/*.obj
96+
)
97+
98+
install(TARGETS giomm-${GLIBMM_VERSION}
99+
LIBRARY DESTINATION "lib"
100+
ARCHIVE DESTINATION "lib"
101+
RUNTIME DESTINATION "bin")
102+
103+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/giomm-${GLIBMM_VERSION}${POSTFIX}.pdb DESTINATION "bin" CONFIGURATIONS DEBUG)
104+
105+
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../../${EXTRA}/giomm/giommconfig.h DESTINATION "lib/giomm-${GLIBMM_VERSION}/include")
106+
107+
install(DIRECTORY ../ DESTINATION include/giomm-${GLIBMM_VERSION}/ FILES_MATCHING PATTERN "*.h"
108+
PATTERN "PaxHeaders*" EXCLUDE
109+
)
110+
#install(DIRECTORY ./ DESTINATION include/giomm-${GLIBMM_VERSION}/giomm/ FILES_MATCHING PATTERN "*.h")

0 commit comments

Comments
 (0)