Skip to content

Commit 880e66d

Browse files
devurandomNeopallium
authored andcommitted
Allow to compile static/dynamic and nojit libraries independently
Also: Fix their names to be not confused with the original lua libraries
1 parent 72f6672 commit 880e66d

File tree

3 files changed

+41
-27
lines changed

3 files changed

+41
-27
lines changed

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,8 @@ else(WIN32)
128128
option(WANT_STATIC_LIBRARY "Set to ON to build static library." ON)
129129
endif(WIN32)
130130

131+
option(WANT_NOJIT_LIBRARIES "Set to ON to build nojit libraries." ON)
132+
131133
if(USE_RPATH)
132134
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib" CACHE STRING "rpaths separated by semicolons.")
133135
option(CMAKE_BUILD_WITH_INSTALL_RPATH "Set to YES to set the rpath or install_name on build instead of install." OFF)

llvm-lua/CMakeLists.txt

Lines changed: 38 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -83,20 +83,27 @@ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/liblua_main_bc.h
8383
# Lua library.
8484
#
8585
set(LLVM_LUA_LIBS)
86-
# llvm-lua static library.
87-
add_library(llvm-lua_static STATIC ${LLVM_LUA_LIB_SRC})
88-
add_target_properties(llvm-lua_static COMPILE_FLAGS "${COMMON_CFLAGS} ${LLVM_CFLAGS}")
89-
add_target_properties(llvm-lua_static LINK_FLAGS "${LD_FLAGS} ${COMMON_LDFLAGS} ${LLVM_LFLAGS}")
90-
target_link_libraries(llvm-lua_static ${LIBS} ${LLVM_ALL_LIBS})
91-
set(LLVM_LUA_MAIN_LIB llvm-lua_static)
92-
if(WANT_STATIC_LIBRARY)
93-
# lua static library without LLVM JIT support.
94-
add_library(lua_static STATIC ${NO_JIT_SRC})
95-
add_target_properties(lua_static COMPILE_FLAGS "${COMMON_CFLAGS}")
96-
add_target_properties(lua_static LINK_FLAGS "${LD_FLAGS} ${COMMON_LDFLAGS}")
97-
target_link_libraries(lua_static ${LIBS})
9886

99-
set(LLVM_LUA_LIBS llvm-lua_static lua_static)
87+
if(WANT_STATIC_LIBRARY)
88+
# llvm-lua static library.
89+
add_library(llvm-lua_static STATIC ${LLVM_LUA_LIB_SRC})
90+
add_target_properties(llvm-lua_static COMPILE_FLAGS "${COMMON_CFLAGS} ${LLVM_CFLAGS}")
91+
add_target_properties(llvm-lua_static LINK_FLAGS "${LD_FLAGS} ${COMMON_LDFLAGS} ${LLVM_LFLAGS}")
92+
target_link_libraries(llvm-lua_static ${LIBS} ${LLVM_ALL_LIBS})
93+
94+
# link lua interpreter with static library
95+
set(LLVM_LUA_MAIN_LIB llvm-lua_static)
96+
set(LLVM_LUA_LIBS ${LLVM_LUA_LIBS} llvm-lua_static)
97+
98+
if (WANT_NOJIT_LIBRARIES)
99+
# lua static library without LLVM JIT support.
100+
add_library(llvm-lua_nojit_static STATIC ${NO_JIT_SRC})
101+
add_target_properties(llvm-lua_nojit_static COMPILE_FLAGS "${COMMON_CFLAGS}")
102+
add_target_properties(llvm-lua_nojit_static LINK_FLAGS "${LD_FLAGS} ${COMMON_LDFLAGS}")
103+
target_link_libraries(llvm-lua_nojit_static ${LIBS})
104+
105+
set(LLVM_LUA_LIBS ${LLVM_LUA_LIBS} llvm-lua_nojit_static)
106+
endif (WANT_NOJIT_LIBRARIES)
100107
endif(WANT_STATIC_LIBRARY)
101108

102109
if(WANT_SHARED_LIBRARY)
@@ -107,26 +114,31 @@ if(WANT_SHARED_LIBRARY)
107114
target_link_libraries(llvm-lua_dynamic ${LIBS} ${LLVM_ALL_LIBS})
108115
set_target_properties(llvm-lua_dynamic PROPERTIES OUTPUT_NAME llvm-lua)
109116

110-
# lua dynamic library without LLVM JIT support.
111-
add_library(lua_dynamic SHARED ${NO_JIT_SRC})
112-
add_target_properties(lua_dynamic COMPILE_FLAGS "${COMMON_CFLAGS}")
113-
add_target_properties(lua_dynamic LINK_FLAGS "${LD_FLAGS} ${COMMON_LDFLAGS}")
114-
target_link_libraries(lua_dynamic ${LIBS})
115-
set_target_properties(lua_dynamic PROPERTIES OUTPUT_NAME lua)
116-
117117
# link lua interpreter with dynamic library
118118
set(LLVM_LUA_MAIN_LIB llvm-lua_dynamic)
119-
set(LLVM_LUA_LIBS ${LLVM_LUA_LIBS} llvm-lua_dynamic lua_dynamic)
119+
set(LLVM_LUA_LIBS ${LLVM_LUA_LIBS} llvm-lua_dynamic)
120+
121+
if (WANT_NOJIT_LIBRARIES)
122+
# lua dynamic library without LLVM JIT support.
123+
add_library(llvm-lua_nojit_dynamic SHARED ${NO_JIT_SRC})
124+
add_target_properties(llvm-lua_nojit_dynamic COMPILE_FLAGS "${COMMON_CFLAGS}")
125+
add_target_properties(llvm-lua_nojit_dynamic LINK_FLAGS "${LD_FLAGS} ${COMMON_LDFLAGS}")
126+
target_link_libraries(llvm-lua_nojit_dynamic ${LIBS})
127+
set_target_properties(llvm-lua_nojit_dynamic PROPERTIES OUTPUT_NAME llvm-lua_nojit)
128+
129+
set(LLVM_LUA_LIBS ${LLVM_LUA_LIBS} llvm-lua_nojit_dynamic)
130+
endif (WANT_NOJIT_LIBRARIES)
120131
endif(WANT_SHARED_LIBRARY)
121132

122133
#
123134
# static library liblua_main.a
124135
#
125136
if(NOT CROSS_COMPILE)
126-
add_library(lua_main STATIC lua_main.c ${NO_JIT_SRC})
127-
add_target_properties(lua_main COMPILE_FLAGS "${COMMON_CFLAGS}")
128-
add_target_properties(lua_main LINK_FLAGS "${LD_FLAGS} ${COMMON_LDFLAGS}")
129-
set(LLVM_LUA_LIBS ${LLVM_LUA_LIBS} lua_main)
137+
add_library(llvm-lua_main STATIC lua_main.c ${NO_JIT_SRC})
138+
add_target_properties(llvm-lua_main COMPILE_FLAGS "${COMMON_CFLAGS}")
139+
add_target_properties(llvm-lua_main LINK_FLAGS "${LD_FLAGS} ${COMMON_LDFLAGS}")
140+
141+
set(LLVM_LUA_LIBS ${LLVM_LUA_LIBS} llvm-lua_main)
130142
endif(NOT CROSS_COMPILE)
131143

132144
# set library version & soversion
@@ -191,7 +203,7 @@ add_executable(llvm-luac ${LLVM_LUAC_SRC})
191203
add_target_properties(llvm-luac COMPILE_FLAGS "${COMMON_CFLAGS} ${LLVM_CFLAGS}")
192204
add_target_properties(llvm-luac LINK_FLAGS
193205
"${LD_FLAGS} ${COMMON_LDFLAGS} ${LLVM_LFLAGS}")
194-
target_link_libraries(llvm-luac llvm-lua_static ${LLVM_ALL_LIBS})
206+
target_link_libraries(llvm-luac ${LLVM_LUA_MAIN_LIB} ${LLVM_ALL_LIBS})
195207
set(LLVM_LUA_BINS llvm-luac)
196208

197209
#

llvm-lua/lua-compiler.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ case "$MODE" in
185185
TMPS="$TMPS ${FILE}_opt.bc ${FILE}_run.c"
186186
echo_cmd opt $OPT_FLAGS -o ${FILE}_opt.bc ${FILE}.bc
187187
echo_cmd llc $LLC_FLAGS --march=c -o ${FILE}_run.c ${FILE}_opt.bc
188-
echo_cmd $CC $EXPORT_SYMBOLS $CFLAGS $LIBS -o ${OUTPUT_FILE} ${FILE}_run.c -llua_main -lm -ldl
188+
echo_cmd $CC $EXPORT_SYMBOLS $CFLAGS $LIBS -o ${OUTPUT_FILE} ${FILE}_run.c -lllvm-lua_main -lm -ldl
189189
;;
190190
c)
191191
TMPS="$TMPS ${FILE}_opt.bc"

0 commit comments

Comments
 (0)