Skip to content

Commit

Permalink
Merge pull request #28 from tkelman/tk/cmake
Browse files Browse the repository at this point in the history
WIP: Minimal cmake build script
  • Loading branch information
stevengj committed Mar 10, 2015
2 parents 50381b9 + 263421f commit 08f101a
Show file tree
Hide file tree
Showing 9 changed files with 100 additions and 4 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
*.dll
*.dylib
*.dSYM
*.txt
*.out
data/*.txt
bench/bench
bench/icu
bench/unistring
Expand Down
8 changes: 8 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,11 @@ script:
- make prefix=`pwd`/local install
- make check
- make utf8proc_data.c.new && (diff utf8proc_data.c.new utf8proc_data.c > /dev/null)
- mkdir build_static
- cd build_static
- cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON
- make
- mkdir ../build_shared
- cd ../build_shared
- cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_SHARED_LIBS=ON
- make
31 changes: 31 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
cmake_minimum_required (VERSION 2.8)

include (utils.cmake)

disallow_intree_builds()

project (utf8proc C)

# Be sure to also update these in Makefile!
set(SO_MAJOR 1)
set(SO_MINOR 2)
set(SO_PATCH 0)

add_definitions (
-DUTF8PROC_EXPORTS
)

if (NOT MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -std=c99 -pedantic -Wall")
endif ()

add_library (utf8proc
utf8proc.c
utf8proc.h
)

set_target_properties (utf8proc PROPERTIES
POSITION_INDEPENDENT_CODE ON
VERSION "${SO_MAJOR}.${SO_MINOR}.${SO_PATCH}"
SOVERSION ${SO_MAJOR}
)
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ cc = $(CC) $(cflags)
# from the utf8proc version number because it indicates ABI compatibility,
# not API compatibility: MAJOR should be incremented whenever *binary*
# compatibility is broken, even if the API is backward-compatible
# Be sure to also update these in CMakeLists.txt!
MAJOR=1
MINOR=2
PATCH=0
Expand Down
2 changes: 1 addition & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ Release of version 1.0.1

2006-09-17:

- added the `LUMP` option, which lumps certain characters together (see `lump.txt`) (also used for the PostgreSQL `unifold` function)
- added the `LUMP` option, which lumps certain characters together (see `lump.md`) (also used for the PostgreSQL `unifold` function)
- added the `STRIPMARK` option, which strips marking characters (or marks of composed characters)
- deprecated ruby method `String#char_ary` in favour of `String#utf8chars`

Expand Down
35 changes: 35 additions & 0 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
branches:
only:
- master

notifications:
- provider: Email
on_build_success: false
on_build_failure: false
on_build_status_changed: false

build_script:
- ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod `
https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | `
Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
throw "There are newer queued builds for this pull request, failing early." }
- mkdir msvc_static
- cd msvc_static
- cmake ..
- cmake --build .
- mkdir ..\msvc_shared
- cd ..\msvc_shared
- cmake .. -DBUILD_SHARED_LIBS=ON
- cmake --build .
- C:\MinGW\msys\1.0\bin\sh --login -c "
echo 'C:\MinGW\ /MinGW' > /etc/fstab;
cd /c/projects/utf8proc;
mkdir mingw_static;
cd mingw_static;
cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -G'MSYS Makefiles';
make;
mkdir ../mingw_shared;
cd ../mingw_shared;
cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_SHARED_LIBS=ON -G'MSYS Makefiles';
make
"
3 changes: 2 additions & 1 deletion lump.txt → lump.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
```
U+0020 <-- all space characters (general category Zs)
U+0027 ' <-- left/right single quotation mark U+2018..2019,
modifier letter apostrophe U+02BC,
Expand All @@ -23,4 +24,4 @@ U+005F _ <-- all connector characters (general category Pc),
U+0060 ` <-- modifier letter grave accent U+02CB
U+007C | <-- divides U+2223
U+007E ~ <-- tilde operator U+223C

```
2 changes: 1 addition & 1 deletion utf8proc.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ extern "C" {
* is representing a single grapheme cluster (see UAX#29).
* LUMP: Lumps certain characters together
* (e.g. HYPHEN U+2010 and MINUS U+2212 to ASCII "-").
* (See lump.txt for details.)
* (See lump.md for details.)
* If NLF2LF is set, this includes a transformation of
* paragraph and line separators to ASCII line-feed (LF).
* STRIPMARK: Strips all character markings
Expand Down
20 changes: 20 additions & 0 deletions utils.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

function (disallow_intree_builds)
# Adapted from LLVM's toplevel CMakeLists.txt file
if( CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR AND NOT MSVC_IDE )
message(FATAL_ERROR "
In-source builds are not allowed. CMake would overwrite the
makefiles distributed with utf8proc. Please create a directory
and run cmake from there. Building in a subdirectory is
fine, e.g.:
mkdir build
cd build
cmake ..
This process created the file `CMakeCache.txt' and the
directory `CMakeFiles'. Please delete them.
")
endif()
endfunction()

0 comments on commit 08f101a

Please sign in to comment.