Skip to content

Commit 464d60e

Browse files
committed
Configure first version of CMake build system
1 parent bd80ec3 commit 464d60e

39 files changed

+1196
-1225
lines changed

.gitignore

Lines changed: 101 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,103 @@
1-
# IntelliJ
1+
# Prerequisites
2+
*.d
3+
4+
# Object files
5+
*.o
6+
*.ko
7+
*.obj
8+
*.elf
9+
10+
# Linker output
11+
*.ilk
12+
*.map
13+
*.exp
14+
15+
# Precompiled Headers
16+
*.gch
17+
*.pch
18+
19+
# Libraries
20+
*.lib
21+
*.a
22+
*.la
23+
*.lo
24+
25+
# Shared objects (inc. Windows DLLs)
26+
*.dll
27+
*.so
28+
*.so.*
29+
*.dylib
30+
31+
# Executables
32+
*.exe
33+
*.out
34+
*.app
35+
*.i*86
36+
*.x86_64
37+
*.hex
38+
39+
# Debug files
40+
*.dSYM/
41+
*.su
42+
*.idb
43+
*.pdb
44+
45+
# Kernel Module Compile Results
46+
*.mod*
47+
*.cmd
48+
.tmp_versions/
49+
modules.order
50+
Module.symvers
51+
Mkfile.old
52+
dkms.conf
53+
54+
# CLion
255
/.idea
356

4-
# Build Results
5-
./XBUILD
57+
# CMake
58+
/CMakeFiles
59+
/cmake-build*
60+
61+
# Code::Blocks
62+
*.layout
63+
*.cbp
64+
*.depend
65+
66+
# Project Files
67+
Makefile
68+
main-*
69+
layout.*
70+
!layout.rst
71+
/_skbuild
72+
73+
# CMake
74+
CMakeCache.txt
75+
/CMakeTmp
76+
*CMakeTmp*
77+
*CMakeFiles*
78+
*CMakeCache.txt
79+
*cmake_install.cmake
80+
install_manifest.txt
81+
CTestTestfile.cmake
82+
83+
# Generated files
84+
/library/pkgIndex.tcl
85+
86+
# Python packages
87+
/*.egg-info
88+
/build
89+
/dist
90+
*.pyc
91+
MANIFEST
92+
/venv
93+
94+
# Documentation
95+
/docs/_build
96+
/docs/html
97+
/docs/_doctrees
98+
/docs/doxygen/xml
99+
/html
100+
/latex
101+
102+
# Dependencies Program
103+
/deps

.travis.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
language: python
2+
dist: bionic
3+
compiler: gcc
4+
python:
5+
- "3.8"
6+
services:
7+
- xvfb
8+
addons:
9+
apt:
10+
packages:
11+
- tcl-dev
12+
- tk-dev
13+
- fontconfig
14+
- libfontconfig1
15+
- libfontconfig1-dev
16+
install:
17+
- sudo apt install cmake build-essential
18+
- python -m pip install nose scikit-build
19+
script:
20+
- python setup.py bdist_wheel
21+
- python setup.py install
22+
- rm -rf ./extrafont
23+
- python -m nose

CMakeLists.txt

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
2+
3+
## ===========================================================================
4+
## Project Information
5+
## ===========================================================================
6+
PROJECT ( extrafont )
7+
## Package version information.
8+
SET ( PKG_NAME ${PROJECT_NAME} )
9+
SET ( PKG_MAJOR_VERSION 0 )
10+
SET ( PKG_MINOR_VERSION 6 )
11+
SET ( PKG_BUILD_VERSION 0 )
12+
SET ( PKG_VERSION "${PKG_MAJOR_VERSION}.${PKG_MINOR_VERSION}" )
13+
SET ( PKG_NAME_VERSION ${PKG_NAME}-${PKG_VERSION} )
14+
SET ( PKG_VENDOR "RedFantom" )
15+
SET ( PKG_HOME_DIR ${PROJECT_SOURCE_DIR} )
16+
SET ( PKG_TARGET_LIB_NAME ${PKG_NAME} )
17+
18+
SET ( NO_MSVCRT ON )
19+
SET ( VERBOSE ON )
20+
SET ( ENABLE_EXPORTS ON )
21+
22+
SET ( PKG_SOURCES src/extrafont.c)
23+
24+
MESSAGE ( STATUS "===========================================================" )
25+
MESSAGE ( STATUS " Welcome to the ${PKG_NAME} ${PKG_VERSION} build system!" )
26+
MESSAGE ( STATUS " * Selected generator: ${CMAKE_GENERATOR}" )
27+
MESSAGE ( STATUS " * Operating System ID: "
28+
${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_VERSION}-${CMAKE_SYSTEM_PROCESSOR} )
29+
MESSAGE ( STATUS " * Installation Directory: " ${CMAKE_INSTALL_PREFIX} )
30+
MESSAGE ( STATUS "===========================================================" )
31+
32+
## ===========================================================================
33+
## Locate Tcl/Tk
34+
## ===========================================================================
35+
MESSAGE(STATUS "Searching for Tcl/Tk...")
36+
FIND_PACKAGE(TCL REQUIRED)
37+
FIND_PACKAGE(TclStub REQUIRED)
38+
MESSAGE(STATUS " TCL_TCLSH: " ${TCL_TCLSH})
39+
MESSAGE(STATUS " TCL_INCLUDE_PATH: " ${TCL_INCLUDE_PATH})
40+
MESSAGE(STATUS " TCL_STUB_LIBRARY: " ${TCL_STUB_LIBRARY})
41+
MESSAGE(STATUS " TCL_LIBRARY: " ${TCL_LIBRARY})
42+
MESSAGE(STATUS " TK_WISH: " ${TK_WISH})
43+
MESSAGE(STATUS " TK_INCLUDE_PATH: " ${TK_INCLUDE_PATH})
44+
MESSAGE(STATUS " TK_STUB_LIBRARY: " ${TK_STUB_LIBRARY})
45+
MESSAGE(STATUS " TTK_STUB_LIBRARY: " ${TTK_STUB_LIBRARY})
46+
MESSAGE(STATUS " TK_LIBRARY: " ${TK_LIBRARY})
47+
# STRING ( REPLACE stub "" TCL_LIBRARY_STATIC ${TCL_STUB_LIBRARY} )
48+
# STRING ( REPLACE stub "" TK_LIBRARY_STATIC ${TK_STUB_LIBRARY} )
49+
# MESSAGE ( STATUS " TCL_LIBRARY_STATIC: " ${TCL_LIBRARY_STATIC} )
50+
# MESSAGE ( STATUS " TK_LIBRARY_STATIC: " ${TK_LIBRARY_STATIC} )
51+
52+
IF ( WIN32 AND NO_MSVCRT )
53+
STRING ( REPLACE /MD /MT CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE} )
54+
STRING ( REPLACE /MDd /MTd CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG} )
55+
STRING ( REPLACE /MD /MT CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
56+
STRING ( REPLACE /MDd /MTd CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG} )
57+
# SET ( CMAKE_EXE_LINKER_FLAGS
58+
# "${CMAKE_EXE_LINKER_FLAGS} /nodefaultlib:MSVCRT.LIB" )
59+
SET ( CMAKE_EXE_LINKER_FLAGS_RELEASE
60+
"${CMAKE_EXE_LINKER_FLAGS_RELEASE} LIBCMT.LIB" )
61+
SET ( CMAKE_EXE_LINKER_FLAGS_DEBUG
62+
"${CMAKE_EXE_LINKER_FLAGS_DEBUG} LIBCMTD.LIB" )
63+
# SET ( CMAKE_SHARED_LINKER_FLAGS
64+
# "${CMAKE_SHARED_LINKER_FLAGS} /nodefaultlib:MSVCRT.LIB" )
65+
SET ( CMAKE_SHARED_LINKER_FLAGS_RELEASE
66+
"${CMAKE_SHARED_LINKER_FLAGS_RELEASE} LIBCMT.LIB" )
67+
SET ( CMAKE_SHARED_LINKER_FLAGS_DEBUG
68+
"${CMAKE_SHARED_LINKER_FLAGS_DEBUG}
69+
/nodefaultlib:LIBCMT.LIB LIBCMTD.LIB" )
70+
ADD_DEFINITIONS ( -D_STATIC_CPPLIB )
71+
ADD_DEFINITIONS ( -D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1 )
72+
ADD_DEFINITIONS ( -D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1 )
73+
ENDIF ( WIN32 AND NO_MSVCRT )
74+
75+
IF ( WIN32 )
76+
ADD_DEFINITIONS ( -DWIN32 )
77+
ADD_DEFINITIONS ( -D_WIN32 )
78+
ADD_DEFINITIONS ( -D_WINDOWS )
79+
ADD_DEFINITIONS ( -D__WIN32__ )
80+
SET ( CMAKE_SHARED_LIBRARY_PREFIX lib )
81+
ENDIF ( WIN32 )
82+
83+
IF ( CMAKE_BUILD_TYPE STREQUAL Debug )
84+
ADD_DEFINITIONS ( -DGTTK_SYNCHRONIZE )
85+
ADD_DEFINITIONS ( -DGTTK_VERBOSE_XERROR_HANDLER )
86+
ENDIF ( CMAKE_BUILD_TYPE STREQUAL Debug )
87+
ADD_DEFINITIONS ( -DGTTK_INSTALL_XERROR_HANDLER )
88+
ADD_DEFINITIONS ( -DUSE_TCL_STUBS )
89+
ADD_DEFINITIONS ( -DUSE_TK_STUBS )
90+
ADD_DEFINITIONS ( -DUSE_TTK_STUBS )
91+
ADD_DEFINITIONS ( -DPACKAGE_NAME="${PKG_NAME}" )
92+
ADD_DEFINITIONS ( -DPACKAGE_VERSION="${PKG_VERSION}" )
93+
INCLUDE_DIRECTORIES ( ${TCL_INCLUDE_PATH} )
94+
INCLUDE_DIRECTORIES ( ${TK_INCLUDE_PATH} )
95+
INCLUDE_DIRECTORIES ( ${TK_INCLUDE_PATH}/tk-private/generic/ttk )
96+
IF ( WIN32 ) # Include additional directories for MSYS build
97+
INCLUDE_DIRECTORIES ( ${TK_INCLUDE_PATH}/tk8.6/tk-private/generic )
98+
INCLUDE_DIRECTORIES ( ${TK_INCLUDE_PATH}/tk8.6/tk-private/generic/ttk )
99+
INCLUDE_DIRECTORIES ( ${TK_INCLUDE_PATH}/tk8.6/tk-private/win )
100+
ENDIF ( WIN32 )
101+
INCLUDE_DIRECTORIES ( ${PROJECT_SOURCE_DIR}/generic )
102+
103+
## ===========================================================================
104+
## Locate fontconfig
105+
## ===========================================================================
106+
FIND_PACKAGE( Fontconfig REQUIRED)
107+
INCLUDE_DIRECTORIES ( ${Fontconfig_INCLUDE_DIRS} )
108+
109+
## ===========================================================================
110+
## Target: extrafont shared library
111+
## ===========================================================================
112+
MESSAGE ( STATUS "===========================================================" )
113+
MESSAGE ( STATUS " ++++ Shared Library: ${PKG_TARGET_LIB_NAME} ++++" )
114+
MESSAGE ( STATUS "===========================================================" )
115+
ADD_LIBRARY ( ${PKG_TARGET_LIB_NAME} SHARED ${PKG_SOURCES} )
116+
TARGET_LINK_LIBRARIES ( ${PKG_TARGET_LIB_NAME} ${TCL_STUB_LIBRARY} )
117+
TARGET_LINK_LIBRARIES ( ${PKG_TARGET_LIB_NAME} ${TK_STUB_LIBRARY} )
118+
TARGET_LINK_LIBRARIES( ${PKG_TARGET_LIB_NAME} ${Fontconfig_LIBRARIES} )
119+
IF ( TTK_STUB_LIBRARY )
120+
TARGET_LINK_LIBRARIES ( ${PKG_TARGET_LIB_NAME} ${TTK_STUB_LIBRARY} )
121+
ENDIF ( TTK_STUB_LIBRARY )
122+
# IF ( TCL_LIBRARY_STATIC )
123+
# TARGET_LINK_LIBRARIES ( ${PKG_TARGET_LIB_NAME} ${TCL_LIBRARY_STATIC} )
124+
# ENDIF ( TCL_LIBRARY_STATIC )
125+
# IF ( TK_LIBRARY_STATIC )
126+
# TARGET_LINK_LIBRARIES ( ${PKG_TARGET_LIB_NAME} ${TK_LIBRARY_STATIC} )
127+
# ENDIF ( TK_LIBRARY_STATIC )
128+
CONFIGURE_FILE( src/extrafont.tcl tkextrafont/extrafont.tcl )
129+
CONFIGURE_FILE( src/fontnameinfo.tcl tkextrafont/fontnameinfo.tcl )
130+
CONFIGURE_FILE( src/futmp.tcl tkextrafont/futmp.tcl )
131+
CONFIGURE_FILE( src/pkgIndex.tcl tkextrafont/pkgIndex.tcl )
132+
133+
SET( LIBRARY_OUTPUT_PATH tkextrafont )
134+
INSTALL ( TARGETS ${PKG_TARGET_LIB_NAME}
135+
RUNTIME DESTINATION ./tkextrafont
136+
LIBRARY DESTINATION ./tkextrafont
137+
ARCHIVE DESTINATION ./tkextrafont )

HOWTOBUILD.txt

Lines changed: 0 additions & 41 deletions
This file was deleted.

build.sh

Lines changed: 0 additions & 55 deletions
This file was deleted.

clean.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash
2+
rm tkextrafont/libextrafont.dll
3+
rm tkextrafont/libextrafont.so
4+
rm CMakeCache.txt
5+
rm cmake_install.cmake
6+
rm -rf cmake-build-debug cmake-build-release
7+
rm -rf CMakeFiles
8+
rm -rf _skbuild
9+
rm -rf tkextrafont.egg_info

0 commit comments

Comments
 (0)