diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f0c25ffc..20f1a81e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,32 @@ cmake_minimum_required(VERSION 3.6.0) project(fcitx VERSION 5.0.23) set(FCITX_VERSION ${PROJECT_VERSION}) +# extra-cmake-modules +if(DEFINED ENV{ECM_DIR}) + set(ECM_DIR $ENV{ECM_DIR}) +else() + set(ECM_DIR "/usr/local/Cellar/extra-cmake-modules/5.97.0/share/ECM/cmake/") +endif() + +set(PREBUILT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/prebuilt") + +# prebuilt fmt +set(fmt_DIR "${PREBUILT_DIR}/fmt/${ANDROID_ABI}/lib/cmake/fmt") +# prebuilt libintl-lite +set(LibIntl_DIR "${PREBUILT_DIR}/libintl-lite/${ANDROID_ABI}/lib/cmake") +set(LibIntl_INCLUDE_DIR "${PREBUILT_DIR}/libintl-lite/${ANDROID_ABI}/include/") +# prebuilt libevent +set(Libevent_DIR "${PREBUILT_DIR}/libevent/${ANDROID_ABI}/lib/cmake/libevent") + +# prebuilt boost +set(BOOST_VERSION "1.80.0") +set(BOOST_MODULES headers filesystem atomic iostreams regex) +set(BOOST_ROOT "${PREBUILT_DIR}/boost/${ANDROID_ABI}") +set(Boost_DIR "${BOOST_ROOT}/lib/cmake/Boost-${BOOST_VERSION}") +foreach(mod IN LISTS BOOST_MODULES) + set("boost_${mod}_DIR" "${BOOST_ROOT}/lib/cmake/boost_${mod}-${BOOST_VERSION}") +endforeach() + find_package(ECM REQUIRED 1.0.0) set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH}) @@ -193,9 +219,9 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DI include_directories(${CMAKE_CURRENT_BINARY_DIR}) add_subdirectory(src) -add_subdirectory(data) -add_subdirectory(po) -add_subdirectory(testing) +# add_subdirectory(data) +# add_subdirectory(po) +# add_subdirectory(testing) ####################################################################### # Test features diff --git a/cmake/Fcitx5CompilerSettings.cmake b/cmake/Fcitx5CompilerSettings.cmake index ac68fac01..24ddd4c97 100644 --- a/cmake/Fcitx5CompilerSettings.cmake +++ b/cmake/Fcitx5CompilerSettings.cmake @@ -7,8 +7,13 @@ set(CMAKE_C_STANDARD 99) set(CMAKE_C_FLAGS "-Wall -Wextra ${CMAKE_C_FLAGS}") set(CMAKE_CXX_FLAGS "-Wall -Wextra ${CMAKE_CXX_FLAGS}") -set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined -Wl,--as-needed ${CMAKE_SHARED_LINKER_FLAGS}") -set(CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined -Wl,--as-needed ${CMAKE_MODULE_LINKER_FLAGS}") +if(APPLE) + set(CMAKE_SHARED_LINKER_FLAGS "-Wl,-undefined,error -Wl ${CMAKE_SHARED_LINKER_FLAGS}") + set(CMAKE_MODULE_LINKER_FLAGS "-Wl,-undefined,error -Wl ${CMAKE_MODULE_LINKER_FLAGS}") +else() + set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined -Wl,--as-needed ${CMAKE_SHARED_LINKER_FLAGS}") + set(CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined -Wl,--as-needed ${CMAKE_MODULE_LINKER_FLAGS}") +endif() set(CMAKE_C_VISIBILITY_PRESET hidden) set(CMAKE_CXX_VISIBILITY_PRESET hidden) diff --git a/prebuilt b/prebuilt new file mode 160000 index 000000000..20fd56fdb --- /dev/null +++ b/prebuilt @@ -0,0 +1 @@ +Subproject commit 20fd56fdbfd26db790c973b9ce09b5931177e367 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f24f0f1d5..e33933704 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,13 +1,13 @@ add_definitions("-DFCITX_GETTEXT_DOMAIN=\"fcitx5\"") add_subdirectory(lib) -add_subdirectory(modules) -add_subdirectory(frontend) +# add_subdirectory(modules) +# add_subdirectory(frontend) -if (ENABLE_SERVER) -add_subdirectory(server) -endif() +# if (ENABLE_SERVER) +# add_subdirectory(server) +# endif() -add_subdirectory(im) -add_subdirectory(ui) -add_subdirectory(tools) +# add_subdirectory(im) +# add_subdirectory(ui) +# add_subdirectory(tools) diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index f55695f54..c2921dccd 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -1,8 +1,8 @@ add_subdirectory(fcitx-utils) -add_subdirectory(fcitx-config) -add_subdirectory(fcitx) +# add_subdirectory(fcitx-config) +# add_subdirectory(fcitx) -if (WAYLAND_FOUND) +# if (WAYLAND_FOUND) - add_subdirectory(fcitx-wayland) -endif() +# add_subdirectory(fcitx-wayland) +# endif() diff --git a/src/lib/fcitx-utils/CMakeLists.txt b/src/lib/fcitx-utils/CMakeLists.txt index 46dbe8d6c..5d9c83651 100644 --- a/src/lib/fcitx-utils/CMakeLists.txt +++ b/src/lib/fcitx-utils/CMakeLists.txt @@ -117,6 +117,8 @@ ecm_setup_version(PROJECT PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/Fcitx5UtilsConfigVersion.cmake" SOVERSION 2) +set(LibIntl::LibIntl "${PREBUILT_DIR}/libintl-lite/${ANDROID_ABI}/lib/libintl.a") + add_library(Fcitx5Utils SHARED ${FCITX_UTILS_SOURCES}) set_target_properties(Fcitx5Utils PROPERTIES VERSION ${Fcitx5Utils_VERSION}