cmake_minimum_required(VERSION 3.18) # ###################################################################################################################### # Check submodules are here # ###################################################################################################################### find_path(CTAGS_SUBMODULE CMakeLists.txt PATHS ${CMAKE_CURRENT_SOURCE_DIR}/ctags/) if(NOT CTAGS_SUBMODULE) message(STATUS "Could not locate `${CMAKE_CURRENT_SOURCE_DIR}/ctags/CMakeLists.txt` file") message(FATAL_ERROR "Please make sure you have run `git submodule update --init`") endif() # ###################################################################################################################### # cJSON # ###################################################################################################################### add_library(cJSON STATIC ${CMAKE_CURRENT_SOURCE_DIR}/cJSON/cJSON.c ${CMAKE_CURRENT_SOURCE_DIR}/cJSON/cJSON.h) target_include_directories(cJSON PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/cJSON) # ###################################################################################################################### # doctest # a library header for test framework # ###################################################################################################################### include(CTest) if(BUILD_TESTING) add_library(doctest INTERFACE) target_include_directories( doctest SYSTEM INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/doctest/doctest") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/doctest/scripts/cmake") include(doctest) endif() # ###################################################################################################################### # For wxWidgets dependencies # ###################################################################################################################### include("${wxWidgets_USE_FILE}") # ###################################################################################################################### # wxshapeframework # ###################################################################################################################### file(GLOB WXSF_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/wxsf-code/src/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/wxsf-code/src/wxxmlserializer/*.cpp") add_library(wxshapeframework SHARED ${WXSF_SRCS}) target_include_directories(wxshapeframework PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/wxsf-code/src") target_include_directories(wxshapeframework PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/wxsf-code/include") # Setup WXDLLIMPEXP_SF/WXDLLIMPEXP_XS for using WEXPORT. target_compile_definitions(wxshapeframework PRIVATE WXMAKINGDLL_WXXS WXMAKINGDLL_WXSF) # Force support for shared libraries target_compile_definitions(wxshapeframework INTERFACE WXUSINGDLL) if(UNIX OR APPLE) set_target_properties(wxshapeframework PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() target_link_libraries(wxshapeframework PRIVATE ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES}) codelite_install_library_target(wxshapeframework) add_subdirectory(lua) add_subdirectory(LuaBridge)