Skip to content

Commit

Permalink
Initial CMake stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
Scott MacVicar authored and moriyoshi committed Jun 21, 2010
1 parent 66290cb commit b4facc1
Show file tree
Hide file tree
Showing 4 changed files with 100 additions and 0 deletions.
28 changes: 28 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
cmake_minimum_required(VERSION 2.6)
project(libmbfl C CXX)

include(CheckIncludeFiles)
include(CheckFunctionExists)

MACRO(MBFL_CHECK_INCLUDE include_file)
CHECK_INCLUDE_FILES("${include_file}" INCLUDE_CHECK_${include_file})
IF(NOT INCLUDE_CHECK_${include_file})
message(STATUS "Checking for ${include_file} - failed")
ENDIF()
ENDMACRO()

MBFL_CHECK_INCLUDE("stdlib.h")
MBFL_CHECK_INCLUDE("stddef.h")
MBFL_CHECK_INCLUDE("assert.h")

CHECK_FUNCTION_EXISTS("strcasecmp" HAVE_STRCASECMP)
CHECK_FUNCTION_EXISTS("strchr" HAVE_STRCHR)

include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/mbfl)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/nls)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/filters)

add_subdirectory(nls)
add_subdirectory(filters)
add_subdirectory(mbfl)
45 changes: 45 additions & 0 deletions filters/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
set(unicode_files 8859-1.TXT 8859-2.TXT 8859-3.TXT 8859-4.TXT 8859-5.TXT 8859-6.TXT
8859-7.TXT 8859-8.TXT 8859-9.TXT 8859-10.TXT 8859-11.TXT
8859-13.TXT 8859-14.TXT 8859-15.TXT 8859-16.TXT)

FIND_PROGRAM(AWK_EXECUTABLE NAMES gawk awk)

foreach(unicode_file ${unicode_files})
string(REGEX REPLACE "([0-9]+)-([0-9]+).TXT" "iso\\1_\\2"
variable_name "${unicode_file}")
string(TOUPPER "${variable_name}" variable_name_upper)

if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${unicode_file}")
message(STATUS "Downloading ${unicode_file}")
file(DOWNLOAD "ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/${unicode_file}" "${CMAKE_CURRENT_SOURCE_DIR}/${unicode_file}")
endif()

set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${unicode_file}")
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_SOURCE_DIR}/unicode_table_${variable_name}.h")

execute_process(
COMMAND ${AWK_EXECUTABLE} -v TABLE_NAME=${variable_name}_ucs_table -v IFNDEF_NAME=UNICODE_TABLE_${variable_name_upper}_H -f mk_sb_tbl.awk ${unicode_file}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_FILE unicode_table_${variable_name}.h
)
endforeach()

SET(_mbfl_filters_files mbfilter_cp936.c mbfilter_hz.c mbfilter_euc_tw.c mbfilter_big5.c
mbfilter_euc_jp.c mbfilter_jis.c mbfilter_iso8859_1.c mbfilter_iso8859_2.c
mbfilter_cp1254.c mbfilter_cp1252.c mbfilter_cp1251.c mbfilter_ascii.c
mbfilter_iso8859_3.c mbfilter_iso8859_4.c mbfilter_iso8859_5.c mbfilter_iso8859_6.c
mbfilter_iso8859_7.c mbfilter_iso8859_8.c mbfilter_iso8859_9.c mbfilter_iso8859_10.c
mbfilter_iso8859_13.c mbfilter_iso8859_14.c mbfilter_iso8859_15.c mbfilter_iso8859_16.c
mbfilter_htmlent.c mbfilter_byte2.c mbfilter_byte4.c mbfilter_uuencode.c
mbfilter_base64.c mbfilter_sjis.c mbfilter_7bit.c mbfilter_qprint.c mbfilter_ucs4.c
mbfilter_ucs2.c mbfilter_utf32.c mbfilter_utf16.c mbfilter_utf8.c mbfilter_utf7.c
mbfilter_utf7imap.c mbfilter_euc_jp_win.c mbfilter_cp932.c mbfilter_cp51932.c
mbfilter_euc_cn.c mbfilter_euc_kr.c mbfilter_uhc.c mbfilter_iso2022_jp_ms.c
mbfilter_iso2022_kr.c mbfilter_cp866.c mbfilter_koi8r.c mbfilter_koi8u.c
mbfilter_armscii8.c mbfilter_cp850.c html_entities.c)

foreach(mbfl_filter_file ${_mbfl_filters_files})
list(APPEND mbfl_filters_files "${CMAKE_CURRENT_SOURCE_DIR}/${mbfl_filter_file}")
endforeach()

SET(mbfl_filters_files ${mbfl_filters_files} PARENT_SCOPE)
19 changes: 19 additions & 0 deletions mbfl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@

FIND_PROGRAM(AWK_EXECUTABLE NAMES gawk awk)
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/EastAsianWidth.txt")
message(STATUS "Downloading EastAsianWidth.txt")
file(DOWNLOAD "http://ftp.unicode.org/Public/UNIDATA/EastAsianWidth.txt" "${CMAKE_CURRENT_SOURCE_DIR}/EastAsianWidth.txt")
endif()
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_SOURCE_DIR}/eaw_table.h")

execute_process(
COMMAND ${AWK_EXECUTABLE} -v TABLE_NAME=mbfl_eaw_table -f mk_eaw_tbl.awk EastAsianWidth.txt
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_FILE eaw_table.h
)

SET(mbfl_files mbfilter.c mbfl_string.c mbfl_language.c mbfl_encoding.c mbfl_convert.c
mbfl_ident.c mbfl_memory_device.c mbfl_allocators.c mbfl_filter_output.c
mbfilter_pass.c mbfilter_wchar.c mbfilter_8bit.c)

add_library(mbfl STATIC ${mbfl_files} ${mbfl_filters_files} ${mbfl_nls_files})
8 changes: 8 additions & 0 deletions nls/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
SET(_mbfl_nls_files nls_ja.c nls_de.c nls_en.c nls_hy.c nls_tr.c nls_kr.c
nls_ru.c nls_ua.c nls_zh.c nls_uni.c nls_neutral.c)

foreach(mbfl_nls_file ${_mbfl_nls_files})
list(APPEND mbfl_nls_files "${CMAKE_CURRENT_SOURCE_DIR}/${mbfl_nls_file}")
endforeach()

SET(mbfl_nls_files ${mbfl_nls_files} PARENT_SCOPE)

0 comments on commit b4facc1

Please sign in to comment.