From 23359732598ae79e5ea1f1687cfcae369d3bc0a3 Mon Sep 17 00:00:00 2001 From: Dibyendu Majumdar Date: Sat, 2 Jan 2021 22:09:02 +0000 Subject: [PATCH 1/3] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b1e677f..913016f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,7 +2,7 @@ name: build on: push: - branches: [ master ] + branches: [ master, cmake ] pull_request: branches: [ master ] From f072326ea4e900e9398dc402184a10821bcc8f8c Mon Sep 17 00:00:00 2001 From: Dibyendu Majumdar Date: Sat, 2 Jan 2021 22:14:22 +0000 Subject: [PATCH 2/3] CMake build refactoring --- CMakeLists.txt | 37 ++++++++++++++++++++----------------- mir/CMakeLists.txt | 27 ++++++++++++++++++--------- 2 files changed, 38 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index aeb5fbf..7ca9d10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,22 +80,25 @@ endif () if (MIR_JIT) message(STATUS "MIRJIT enabled") - set(JIT_SRCS ${MIR_SRCS} ${C2MIR_SRCS} ${MIR_JIT_SRCS}) - set(ALL_MIR_SRCS ${MIR_SRCS} ${C2MIR_SRCS}) - if (NOT MSVC) - set_source_files_properties(${ALL_MIR_SRCS} PROPERTIES - COMPILE_FLAGS "-fsigned-char") - endif () - set_property(SOURCE ${MIR_SRCS} ${C2MIR_SRCS} ${MIR_JIT_SRCS} - APPEND - PROPERTY INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/mir;${CMAKE_SOURCE_DIR}/mir/c2mir") - set_property(SOURCE ${MIR_SRCS} ${C2MIR_SRCS} ${MIR_JIT_SRCS} - APPEND - PROPERTY COMPILE_DEFINITIONS "MIR_NO_IO=0;MIR_NO_SCAN=1;MIR_NO_INTERP=1") - if ($ENV{CLION_IDE}) - # CLion seems unable to handle include paths set on sources - include_directories("${CMAKE_SOURCE_DIR}/mir;${CMAKE_SOURCE_DIR}/mir/c2mir") - endif () +# set(JIT_SRCS ${MIR_SRCS} ${C2MIR_SRCS} ${MIR_JIT_SRCS}) +# set(ALL_MIR_SRCS ${MIR_SRCS} ${C2MIR_SRCS}) +# if (NOT MSVC) +# set_source_files_properties(${ALL_MIR_SRCS} PROPERTIES +# COMPILE_FLAGS "-fsigned-char") +# endif () +# set_property(SOURCE ${MIR_SRCS} ${C2MIR_SRCS} ${MIR_JIT_SRCS} +# APPEND +# PROPERTY INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/mir;${CMAKE_SOURCE_DIR}/mir/c2mir") +# set_property(SOURCE ${MIR_SRCS} ${C2MIR_SRCS} ${MIR_JIT_SRCS} +# APPEND +# PROPERTY COMPILE_DEFINITIONS "MIR_NO_IO=0;MIR_NO_SCAN=1;MIR_NO_INTERP=1") +# if ($ENV{CLION_IDE}) +# # CLion seems unable to handle include paths set on sources +# include_directories("${CMAKE_SOURCE_DIR}/mir;${CMAKE_SOURCE_DIR}/mir/c2mir") +# endif () + add_subdirectory(mir) + set(MIRJIT_LIBRARIES c2mir) + set(JIT_SRCS ${MIR_JIT_SRCS}) else () set(JIT_SRCS ${NO_JIT_SRCS}) endif () @@ -145,7 +148,7 @@ add_library(${LIBRAVI_NAME} ${LIBRAVI_BUILD_TYPE} ${LUA_CORE_SRCS} ${JIT_SRCS} ${ADDON_SRCS}) -target_link_libraries(${LIBRAVI_NAME} ${EXTRA_LIBRARIES} ${MIRJIT_LIBRARIES} ${RAVICOMP_LIBRARIES}) +target_link_libraries(${LIBRAVI_NAME} LINK_PUBLIC ${EXTRA_LIBRARIES} ${MIRJIT_LIBRARIES} ${RAVICOMP_LIBRARIES}) # Main Ravi executable add_executable(ravi ${LUA_CMD_SRCS}) diff --git a/mir/CMakeLists.txt b/mir/CMakeLists.txt index c25845f..aebe6d9 100644 --- a/mir/CMakeLists.txt +++ b/mir/CMakeLists.txt @@ -1,6 +1,5 @@ -project(mir) - -enable_language(C) +cmake_minimum_required(VERSION 3.12) +project(mir LANGUAGES C) message(STATUS "OS type is ${CMAKE_SYSTEM_NAME}") message(STATUS "System processor is ${CMAKE_HOST_SYSTEM_PROCESSOR}") @@ -27,11 +26,16 @@ set(C2MIR_SRCS set(LIBS dl) -add_definitions(-DMIR_NO_IO=0) -add_definitions(-DMIR_NO_SCAN=1) +#add_definitions(-DMIR_NO_IO=0) +#add_definitions(-DMIR_NO_SCAN=1) +set_property(SOURCE ${MIR_SRCS} ${C2MIR_SRCS} ${MIR_JIT_SRCS} + APPEND + PROPERTY COMPILE_DEFINITIONS "MIR_NO_IO=0;MIR_NO_SCAN=1;MIR_NO_INTERP=1") -include_directories(".") -include_directories("./c2mir") +if ($ENV{CLION_IDE}) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/c2mir) +endif() include(CheckCCompilerFlag) check_c_compiler_flag("-fsigned-char" COMPILER_OPT_SIGNED_CHAR_SUPPORTED) @@ -47,10 +51,15 @@ if (COMPILER_OPT_NO_IPA_CP_CLONE_SUPPORTED AND NOT CMAKE_C_FLAGS MATCHES "-fno-i set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-ipa-cp-clone") endif() - -add_library(c2mir +add_library(c2mir SHARED ${MIR_HEADERS} ${MIR_SRCS} ${C2MIR_SRCS}) target_link_libraries(c2mir ${LIBS}) +target_include_directories(c2mir PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/c2mir) set_property(TARGET c2mir PROPERTY C_STANDARD 11) + +install(TARGETS c2mir + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT mir_Runtime + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT mir_Development + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT mir_Runtime) \ No newline at end of file From cc0c09801105c25aaee9df179416f73b48a0e2e9 Mon Sep 17 00:00:00 2001 From: Dibyendu Majumdar Date: Sat, 2 Jan 2021 23:23:06 +0000 Subject: [PATCH 3/3] CMake refactoring --- mir/CMakeLists.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mir/CMakeLists.txt b/mir/CMakeLists.txt index aebe6d9..981deb5 100644 --- a/mir/CMakeLists.txt +++ b/mir/CMakeLists.txt @@ -24,7 +24,12 @@ set(C2MIR_SRCS c2mir/c2mir.c ) -set(LIBS dl) +set(LIBS ${CMAKE_DL_LIBS}) +if (WIN32) + set(MIR_BUILD_TYPE STATIC) +else() + set(MIR_BUILD_TYPE SHARED) +endif() #add_definitions(-DMIR_NO_IO=0) #add_definitions(-DMIR_NO_SCAN=1) @@ -51,7 +56,7 @@ if (COMPILER_OPT_NO_IPA_CP_CLONE_SUPPORTED AND NOT CMAKE_C_FLAGS MATCHES "-fno-i set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-ipa-cp-clone") endif() -add_library(c2mir SHARED +add_library(c2mir ${MIR_BUILD_TYPE} ${MIR_HEADERS} ${MIR_SRCS} ${C2MIR_SRCS})