Removed dependency for jansson, using my own json
This commit is contained in:
@ -12,11 +12,11 @@ option(CROSSLANG_ENABLE_BINARIES "Enable Tesses CrossLang binaries" ON)
|
||||
option(CROSSLANG_INSTALL_DEVELOPMENT "Enable Tesses CrossLang development files" ON)
|
||||
option(CROSSLANG_ENABLE_THREADING "Enable Tesses CrossLang threading" ON)
|
||||
option(CROSSLANG_ENABLE_SQLITE "Enable sqlite (Embedded database, supports Wii)" ON)
|
||||
option(CROSSLANG_ENABLE_JSON "Enable JSON" ON)
|
||||
option(CROSSLANG_ENABLE_PROCESS "Enable process" ON)
|
||||
option(CROSSLANG_ENABLE_TERMIOS "Enable termios (For changing terminal options)" ON)
|
||||
option(CROSSLANG_ENABLE_PLATFORM_FOLDERS "Enable platform folders" ON)
|
||||
option(CROSSLANG_SHARED_EXECUTABLES "Link with libcrosslang_shared" ON)
|
||||
option(CROSSLANG_FETCHCONTENT "Use fetchcontent" ON)
|
||||
|
||||
option(CROSSLANG_CUSTOM_CONSOLE "Enable custom Console" OFF)
|
||||
|
||||
@ -27,21 +27,26 @@ set(CROSSLANG_ENABLE_SHARED OFF)
|
||||
endif()
|
||||
|
||||
set(CROSSLANG_OFFLINE_SHELL_PACKAGE "" CACHE FILEPATH "Path to the shell package generated from https://onedev.site.tesses.net/CrossLang/CrossLangExtras")
|
||||
set(JANSSON_DIR "" CACHE PATH "Directory for Jansson")
|
||||
|
||||
if(CROSSLANG_FETCHCONTENT)
|
||||
set(TESSESFRAMEWORK_ENABLE_EXAMPLES OFF)
|
||||
set(TESSESFRAMEWORK_ENABLE_APPS OFF)
|
||||
set(CROSSLANG_ENABLE_SHARED OFF)
|
||||
set(TESSESFRAMEWORK_ENABLE_SHARED OFF)
|
||||
set(CROSSLANG_SHARED_EXECUTABLES OFF)
|
||||
|
||||
include(FetchContent)
|
||||
FetchContent_Declare(
|
||||
TessesFramework
|
||||
GIT_REPOSITORY https://onedev.site.tesses.net/tesses-framework.git
|
||||
)
|
||||
FetchContent_MakeAvailable(TessesFramework)
|
||||
else()
|
||||
find_package(TessesFramework REQUIRED)
|
||||
endif()
|
||||
function(CROSSLANG_LINK_DEPS CROSSLANG_TARGET_NAME)
|
||||
if(CROSSLANG_ENABLE_PROCESS)
|
||||
target_compile_definitions(${CROSSLANG_TARGET_NAME} PUBLIC CROSSLANG_ENABLE_PROCESS)
|
||||
endif()
|
||||
if(CROSSLANG_ENABLE_JSON)
|
||||
target_compile_definitions(${CROSSLANG_TARGET_NAME} PUBLIC CROSSLANG_ENABLE_JSON)
|
||||
if(JANSSON_DIR STREQUAL "")
|
||||
else()
|
||||
target_include_directories(${CROSSLANG_TARGET_NAME} PUBLIC ${JANSSON_DIR}/include)
|
||||
target_link_directories(${CROSSLANG_TARGET_NAME} PUBLIC ${JANSSON_DIR}/lib)
|
||||
endif()
|
||||
target_link_libraries(${CROSSLANG_TARGET_NAME} PUBLIC jansson)
|
||||
|
||||
endif()
|
||||
if(CROSSLANG_ENABLE_THREADING)
|
||||
target_compile_definitions(${CROSSLANG_TARGET_NAME} PUBLIC CROSSLANG_ENABLE_THREADING)
|
||||
@ -141,9 +146,13 @@ include(GNUInstallDirs)
|
||||
if(CROSSLANG_ENABLE_STATIC)
|
||||
|
||||
add_library(crosslang_static STATIC ${CROSSLANG_SOURCE})
|
||||
target_link_libraries(crosslang_static PUBLIC TessesFramework::tessesframework)
|
||||
|
||||
CROSSLANG_LINK_DEPS(crosslang_static)
|
||||
if(CROSSLANG_FETCHCONTENT)
|
||||
target_link_libraries(crosslang_static PUBLIC tessesframework)
|
||||
else()
|
||||
target_link_libraries(crosslang_static PUBLIC TessesFramework::tessesframework)
|
||||
endif()
|
||||
|
||||
list(APPEND TessesCrossLangLibs crosslang_static)
|
||||
endif()
|
||||
|
||||
@ -151,7 +160,11 @@ endif()
|
||||
if(CROSSLANG_ENABLE_SHARED)
|
||||
add_library(crosslang_shared SHARED ${CROSSLANG_SOURCE})
|
||||
CROSSLANG_LINK_DEPS(crosslang_shared)
|
||||
if(CROSSLANG_FETCHCONTENT)
|
||||
target_link_libraries(crosslang_shared PUBLIC tessesframework_shared)
|
||||
else()
|
||||
target_link_libraries(crosslang_shared PUBLIC TessesFramework::tessesframework_shared)
|
||||
endif()
|
||||
list(APPEND TessesCrossLangLibs crosslang_shared)
|
||||
endif()
|
||||
|
||||
@ -248,6 +261,26 @@ CROSSLANG_LINK_DEPS(crossdump)
|
||||
CROSSLANG_LINK_DEPS(crossarchiveextract)
|
||||
CROSSLANG_LINK_DEPS(crossarchivecreate)
|
||||
CROSSLANG_LINK_DEPS(crossthumbnailer)
|
||||
|
||||
if(CROSSLANG_FETCHCONTENT)
|
||||
target_link_libraries(crossc PUBLIC tessesframework)
|
||||
target_link_libraries(crossvm PUBLIC tessesframework)
|
||||
target_link_libraries(crossint PUBLIC tessesframework)
|
||||
target_link_libraries(crosslang PUBLIC tessesframework)
|
||||
target_link_libraries(crossdump PUBLIC tessesframework)
|
||||
target_link_libraries(crossarchiveextract PUBLIC tessesframework)
|
||||
target_link_libraries(crossarchivecreate PUBLIC tessesframework)
|
||||
target_link_libraries(crossthumbnailer PUBLIC tessesframework)
|
||||
else()
|
||||
target_link_libraries(crossc PUBLIC TessesFramework::tessesframework)
|
||||
target_link_libraries(crossvm PUBLIC TessesFramework::tessesframework)
|
||||
target_link_libraries(crossint PUBLIC TessesFramework::tessesframework)
|
||||
target_link_libraries(crosslang PUBLIC TessesFramework::tessesframework)
|
||||
target_link_libraries(crossdump PUBLIC TessesFramework::tessesframework)
|
||||
target_link_libraries(crossarchiveextract PUBLIC TessesFramework::tessesframework)
|
||||
target_link_libraries(crossarchivecreate PUBLIC TessesFramework::tessesframework)
|
||||
target_link_libraries(crossthumbnailer PUBLIC TessesFramework::tessesframework)
|
||||
endif()
|
||||
endif()
|
||||
install(TARGETS crossc DESTINATION bin)
|
||||
install(TARGETS crossvm DESTINATION bin)
|
||||
|
||||
Reference in New Issue
Block a user