Merge pull request #28 from tkelman/tk/cmake
WIP: Minimal cmake build script
This commit is contained in:
commit
08f101a9e8
2
.gitignore
vendored
2
.gitignore
vendored
@ -8,8 +8,8 @@
|
|||||||
*.dll
|
*.dll
|
||||||
*.dylib
|
*.dylib
|
||||||
*.dSYM
|
*.dSYM
|
||||||
*.txt
|
|
||||||
*.out
|
*.out
|
||||||
|
data/*.txt
|
||||||
bench/bench
|
bench/bench
|
||||||
bench/icu
|
bench/icu
|
||||||
bench/unistring
|
bench/unistring
|
||||||
|
|||||||
@ -8,3 +8,11 @@ script:
|
|||||||
- make prefix=`pwd`/local install
|
- make prefix=`pwd`/local install
|
||||||
- make check
|
- make check
|
||||||
- make utf8proc_data.c.new && (diff utf8proc_data.c.new utf8proc_data.c > /dev/null)
|
- 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
CMakeLists.txt
Normal file
31
CMakeLists.txt
Normal file
@ -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
Makefile
1
Makefile
@ -16,6 +16,7 @@ cc = $(CC) $(cflags)
|
|||||||
# from the utf8proc version number because it indicates ABI compatibility,
|
# from the utf8proc version number because it indicates ABI compatibility,
|
||||||
# not API compatibility: MAJOR should be incremented whenever *binary*
|
# not API compatibility: MAJOR should be incremented whenever *binary*
|
||||||
# compatibility is broken, even if the API is backward-compatible
|
# compatibility is broken, even if the API is backward-compatible
|
||||||
|
# Be sure to also update these in CMakeLists.txt!
|
||||||
MAJOR=1
|
MAJOR=1
|
||||||
MINOR=2
|
MINOR=2
|
||||||
PATCH=0
|
PATCH=0
|
||||||
|
|||||||
2
NEWS.md
2
NEWS.md
@ -105,7 +105,7 @@ Release of version 1.0.1
|
|||||||
|
|
||||||
2006-09-17:
|
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)
|
- added the `STRIPMARK` option, which strips marking characters (or marks of composed characters)
|
||||||
- deprecated ruby method `String#char_ary` in favour of `String#utf8chars`
|
- deprecated ruby method `String#char_ary` in favour of `String#utf8chars`
|
||||||
|
|
||||||
|
|||||||
35
appveyor.yml
Normal file
35
appveyor.yml
Normal file
@ -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
|
||||||
|
"
|
||||||
@ -1,3 +1,4 @@
|
|||||||
|
```
|
||||||
U+0020 <-- all space characters (general category Zs)
|
U+0020 <-- all space characters (general category Zs)
|
||||||
U+0027 ' <-- left/right single quotation mark U+2018..2019,
|
U+0027 ' <-- left/right single quotation mark U+2018..2019,
|
||||||
modifier letter apostrophe U+02BC,
|
modifier letter apostrophe U+02BC,
|
||||||
@ -23,4 +24,4 @@ U+005F _ <-- all connector characters (general category Pc),
|
|||||||
U+0060 ` <-- modifier letter grave accent U+02CB
|
U+0060 ` <-- modifier letter grave accent U+02CB
|
||||||
U+007C | <-- divides U+2223
|
U+007C | <-- divides U+2223
|
||||||
U+007E ~ <-- tilde operator U+223C
|
U+007E ~ <-- tilde operator U+223C
|
||||||
|
```
|
||||||
@ -140,7 +140,7 @@ extern "C" {
|
|||||||
* is representing a single grapheme cluster (see UAX#29).
|
* is representing a single grapheme cluster (see UAX#29).
|
||||||
* LUMP: Lumps certain characters together
|
* LUMP: Lumps certain characters together
|
||||||
* (e.g. HYPHEN U+2010 and MINUS U+2212 to ASCII "-").
|
* (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
|
* If NLF2LF is set, this includes a transformation of
|
||||||
* paragraph and line separators to ASCII line-feed (LF).
|
* paragraph and line separators to ASCII line-feed (LF).
|
||||||
* STRIPMARK: Strips all character markings
|
* STRIPMARK: Strips all character markings
|
||||||
|
|||||||
20
utils.cmake
Normal file
20
utils.cmake
Normal file
@ -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()
|
||||||
Loading…
Reference in New Issue
Block a user