aboutsummaryrefslogtreecommitdiff
path: root/ports/mecab/CMakeLists.txt
blob: 9ebf42ee121f3aefa35e9e7758cdb5e1f59245dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
cmake_minimum_required(VERSION 3.12 FATAL_ERROR)

PROJECT(mecab VERSION 1.0)
                          
file(GLOB SOURCE_FILE
	"*.cpp"
	"*.c"
)
file(GLOB HEADERS_FILE
	"*.h"
)

message(STATUS "current cmake path: ${CMAKE_CURRENT_SOURCE_DIR}")
list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-cost-train.cpp)
list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-dict-gen.cpp)
list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-dict-index.cpp)
list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-system-eval.cpp)
list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-test-gen.cpp)
#list(REMOVE_ITEM SOURCE_FILE "mecab-cost-train.cpp" "mecab-dict-gen.cpp" "mecab-dict-index.cpp" "mecab-system-eval.cpp" "mecab-test-gen.cpp")

add_library (mecab ${SOURCE_FILE})
target_include_directories(mecab PUBLIC
	$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
	$<INSTALL_INTERFACE:include>)

if(UNIX)
	target_compile_definitions(mecab PUBLIC -DHAVE_UNISTD_H -DHAVE_FCNTL_H -DHAVE_STDINT_H -DHAVE_SYS_TYPES_H -DHAVE_SYS_STAT_H -DHAVE_DIRENT_H -DDIC_VERSION=102 -DVERSION="@VERSION@" -DPACKAGE="mecab" -DMECAB_DEFAULT_RC="./mecabrc")
endif(UNIX)
if(WIN32)
	target_compile_definitions(mecab PUBLIC -D_CRT_SECURE_NO_DEPRECATE -DMECAB_USE_THREAD -DDLL_EXPORT -DHAVE_GETENV -DHAVE_WINDOWS_H -DDIC_VERSION=102 -DVERSION="@VERSION@" -DPACKAGE="mecab" -DUNICODE -D_UNICODE -DMECAB_DEFAULT_RC="mecabrc")
endif(WIN32)


include (GNUInstallDirs)
include(CMakePackageConfigHelpers)

set (mecab_CMAKE_DIR share/mecab CACHE STRING "Installation dir")
set (targets_export_name mecabTargets CACHE INTERNAL "")

install(TARGETS mecab
	EXPORT ${targets_export_name}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)

install(FILES ${HEADERS_FILE} DESTINATION include/mecab CONFIGURATIONS Release)

install(EXPORT ${targets_export_name}
        NAMESPACE mecab::
		DESTINATION ${mecab_CMAKE_DIR})

configure_package_config_file(
	"${PROJECT_SOURCE_DIR}/Config.cmake.in"
	"${PROJECT_BINARY_DIR}/mecabConfig.cmake" 
	INSTALL_DESTINATION ${mecab_CMAKE_DIR})


write_basic_package_version_file(
  ${PROJECT_BINARY_DIR}/mecabConfigVersion.cmake
  VERSION ${PROJECT_VERSION}
  COMPATIBILITY SameMajorVersion )

install(FILES 
	${PROJECT_BINARY_DIR}/mecabConfig.cmake 
	${PROJECT_BINARY_DIR}/mecabConfigVersion.cmake 
	DESTINATION ${mecab_CMAKE_DIR})