Skip to content

Commit 308f249

Browse files
authored
Merge pull request #38 from zao/find-deps
Find appropriate Debug/Release versions of LuaJIT
2 parents 917233c + c29c66c commit 308f249

File tree

3 files changed

+162
-76
lines changed

3 files changed

+162
-76
lines changed

CMakeLists.txt

Lines changed: 64 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ if (APPLE)
88
endif ()
99

1010
if (MSVC)
11-
add_compile_options("/Zi")
12-
add_link_options("/DEBUG:FULL")
11+
add_compile_options("/Zi")
12+
add_link_options("/DEBUG:FULL")
1313
endif ()
1414

1515
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
@@ -103,40 +103,40 @@ find_package(unofficial-angle CONFIG REQUIRED)
103103
find_package(CURL CONFIG REQUIRED)
104104
find_package(fmt CONFIG REQUIRED)
105105
find_package(glfw3 CONFIG REQUIRED)
106-
find_package(LuaJit REQUIRED)
106+
find_package(LuaJIT REQUIRED)
107107
find_package(re2 CONFIG REQUIRED)
108108
find_package(unofficial-sodium CONFIG REQUIRED)
109109
find_package(Threads REQUIRED)
110110
find_package(ZLIB REQUIRED)
111111

112112
add_library(imgui STATIC
113-
dep/imgui/imconfig.h
114-
dep/imgui/imgui.cpp
115-
dep/imgui/imgui.h
116-
dep/imgui/imgui_demo.cpp
117-
dep/imgui/imgui_draw.cpp
118-
dep/imgui/imgui_internal.h
119-
dep/imgui/imgui_tables.cpp
120-
dep/imgui/imgui_widgets.cpp
121-
dep/imgui/imstb_rectpack.h
122-
dep/imgui/imstb_textedit.h
123-
dep/imgui/imstb_truetype.h
124-
dep/imgui/backends/imgui_impl_glfw.cpp
125-
dep/imgui/backends/imgui_impl_glfw.h
126-
dep/imgui/backends/imgui_impl_opengl3.cpp
127-
dep/imgui/backends/imgui_impl_opengl3.h
128-
dep/imgui/backends/imgui_impl_opengl3_loader.h
129-
dep/imgui/misc/cpp/imgui_stdlib.cpp
130-
dep/imgui/misc/cpp/imgui_stdlib.h
113+
dep/imgui/imconfig.h
114+
dep/imgui/imgui.cpp
115+
dep/imgui/imgui.h
116+
dep/imgui/imgui_demo.cpp
117+
dep/imgui/imgui_draw.cpp
118+
dep/imgui/imgui_internal.h
119+
dep/imgui/imgui_tables.cpp
120+
dep/imgui/imgui_widgets.cpp
121+
dep/imgui/imstb_rectpack.h
122+
dep/imgui/imstb_textedit.h
123+
dep/imgui/imstb_truetype.h
124+
dep/imgui/backends/imgui_impl_glfw.cpp
125+
dep/imgui/backends/imgui_impl_glfw.h
126+
dep/imgui/backends/imgui_impl_opengl3.cpp
127+
dep/imgui/backends/imgui_impl_opengl3.h
128+
dep/imgui/backends/imgui_impl_opengl3_loader.h
129+
dep/imgui/misc/cpp/imgui_stdlib.cpp
130+
dep/imgui/misc/cpp/imgui_stdlib.h
131131
)
132132

133133
target_compile_definitions(imgui PUBLIC
134-
"IMGUI_IMPL_OPENGL_ES2"
134+
"IMGUI_IMPL_OPENGL_ES2"
135135
)
136136

137137
target_include_directories(imgui PUBLIC
138-
dep/imgui
139-
dep/imgui/backends
138+
dep/imgui
139+
dep/imgui/backends
140140
)
141141

142142
target_link_libraries(imgui PUBLIC
@@ -149,7 +149,6 @@ target_include_directories(SimpleGraphic
149149
${CMAKE_CURRENT_SOURCE_DIR}/dep/glad/include
150150
${CMAKE_CURRENT_SOURCE_DIR}/dep/stb
151151
${JPEG_INCLUDE_DIR}
152-
${LUAJIT_INCLUDE_DIR}
153152
)
154153

155154
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
@@ -183,7 +182,7 @@ target_link_libraries(SimpleGraphic
183182
fmt::fmt
184183
glfw
185184
imgui
186-
${LUAJIT_LIBRARIES}
185+
LuaJIT::LuaJIT
187186
re2::re2
188187
unofficial-sodium::sodium
189188
Threads::Threads
@@ -194,14 +193,43 @@ install(FILES $<TARGET_RUNTIME_DLLS:SimpleGraphic> DESTINATION ".")
194193
install(TARGETS SimpleGraphic RUNTIME DESTINATION ".")
195194

196195
if (WIN32)
197-
if (DEFINED ENV{DEPS_DIR})
198-
set(DEPS_BIN_DIR ${DEPS_DIR}/bin)
199-
else ()
200-
set(DEPS_BIN_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin")
201-
endif ()
202-
find_file(LUAJIT_DLL NAMES "lua51.dll" PATHS "${DEPS_BIN_DIR}" REQUIRED)
203-
find_file(ZLIB_DLL NAMES "zlib1.dll" PATHS "${DEPS_BIN_DIR}" REQUIRED)
204-
install(FILES ${LUAJIT_DLL} ${ZLIB_DLL} DESTINATION ".")
196+
set(DEPS_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}")
197+
198+
find_file(LuaJIT_DLL_DEBUG
199+
NAMES "lua51.dll"
200+
PATHS "${DEPS_DIR}"
201+
PATH_SUFFIXES "debug/bin"
202+
REQUIRED
203+
NO_DEFAULT_PATH
204+
)
205+
find_file(LuaJIT_DLL_RELEASE
206+
NAMES "lua51.dll"
207+
PATHS "${DEPS_DIR}"
208+
PATH_SUFFIXES "bin"
209+
REQUIRED
210+
NO_DEFAULT_PATH
211+
)
212+
find_file(ZLIB_DLL_DEBUG
213+
NAMES "zlibd1.dll"
214+
PATHS "${DEPS_DIR}"
215+
PATH_SUFFIXES "debug/bin"
216+
REQUIRED
217+
NO_DEFAULT_PATH
218+
)
219+
find_file(ZLIB_DLL_RELEASE
220+
NAMES "zlib1.dll"
221+
PATHS "${DEPS_DIR}"
222+
PATH_SUFFIXES "bin"
223+
REQUIRED
224+
NO_DEFAULT_PATH
225+
)
226+
227+
install(FILES ${LuaJIT_DLL_DEBUG} ${ZLIB_DLL_DEBUG} DESTINATION "."
228+
CONFIGURATIONS Debug
229+
)
230+
install(FILES ${LuaJIT_DLL_RELEASE} ${ZLIB_DLL_RELEASE} DESTINATION "."
231+
CONFIGURATIONS Release MinSizeRel RelWithDebInfo
232+
)
205233
endif ()
206234

207235

@@ -214,13 +242,12 @@ add_library(lcurl SHARED ${LCURL_SOURCES})
214242
target_include_directories(lcurl
215243
PRIVATE
216244
${LCURL_SOURCE_DIR}/src
217-
${LUAJIT_INCLUDE_DIR}
218245
)
219246

220247
target_link_libraries(lcurl
221248
PRIVATE
222249
CURL::libcurl
223-
${LUAJIT_LIBRARIES}
250+
LuaJIT::LuaJIT
224251
)
225252

226253
install(TARGETS lcurl RUNTIME DESTINATION ".")
@@ -233,12 +260,11 @@ add_library(lzip SHARED libs/LZip/lzip.cpp)
233260

234261
target_include_directories(lzip
235262
PRIVATE
236-
${LUAJIT_INCLUDE_DIR}
237263
)
238264

239265
target_link_libraries(lzip
240266
PRIVATE
241-
${LUAJIT_LIBRARIES}
267+
LuaJIT::LuaJIT
242268
ZLIB::ZLIB
243269
)
244270

cmake/FindLuaJIT.cmake

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# - Try to find luajit
2+
# Once done this will define
3+
# LuaJIT_FOUND - System has luajit
4+
# LuaJIT_INCLUDE_DIRS - The luajit include directories
5+
# LuaJIT_LIBRARIES - The libraries needed to use luajit
6+
7+
if (DEFINED VCPKG_INSTALLED_DIR AND DEFINED VCPKG_TARGET_TRIPLET)
8+
set(LuaJIT_SEARCH_ROOT ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET})
9+
10+
find_path(LuaJIT_INCLUDE_DIR luajit.h
11+
PATHS ${LuaJIT_SEARCH_ROOT}/include
12+
PATH_SUFFIXES luajit
13+
NO_DEFAULT_PATH)
14+
15+
find_library(LuaJIT_LIBRARY_RELEASE NAMES lua51
16+
PATHS ${LuaJIT_SEARCH_ROOT}
17+
PATH_SUFFIXES lib
18+
NO_DEFAULT_PATH)
19+
20+
find_library(LuaJIT_LIBRARY_DEBUG NAMES lua51
21+
PATHS ${LuaJIT_SEARCH_ROOT}
22+
PATH_SUFFIXES debug/lib
23+
NO_DEFAULT_PATH)
24+
25+
include(SelectLibraryConfigurations)
26+
select_library_configurations(LuaJIT)
27+
28+
find_package_handle_standard_args(LuaJIT
29+
REQUIRED_VARS LuaJIT_LIBRARY LuaJIT_INCLUDE_DIR)
30+
mark_as_advanced(LuaJIT_INCLUDE_DIR LuaJIT_LIBRARY)
31+
32+
if(LuaJIT_FOUND)
33+
set(LuaJIT_INCLUDE_DIRS ${LuaJIT_INCLUDE_DIR})
34+
35+
if(NOT LuaJIT_LIBRARIES)
36+
set(LuaJIT_LIBRARIES ${LuaJIT_LIBRARY})
37+
endif()
38+
39+
if(NOT TARGET LuaJIT::LuaJIT)
40+
add_library(LuaJIT::LuaJIT UNKNOWN IMPORTED)
41+
set_target_properties(LuaJIT::LuaJIT PROPERTIES
42+
INTERFACE_INCLUDE_DIRECTORIES "${LuaJIT_INCLUDE_DIRS}")
43+
44+
if(LuaJIT_LIBRARY_RELEASE)
45+
set_property(TARGET LuaJIT::LuaJIT APPEND PROPERTY
46+
IMPORTED_CONFIGURATIONS RELEASE)
47+
set_target_properties(LuaJIT::LuaJIT PROPERTIES
48+
IMPORTED_LOCATION_RELEASE "${LuaJIT_LIBRARY_RELEASE}")
49+
endif()
50+
51+
if(LuaJIT_LIBRARY_DEBUG)
52+
set_property(TARGET LuaJIT::LuaJIT APPEND PROPERTY
53+
IMPORTED_CONFIGURATIONS DEBUG)
54+
set_target_properties(LuaJIT::LuaJIT PROPERTIES
55+
IMPORTED_LOCATION_DEBUG "${LuaJIT_LIBRARY_DEBUG}")
56+
endif()
57+
58+
if(NOT LuaJIT_LIBRARY_RELEASE AND NOT LuaJIT_LIBRARY_DEBUG)
59+
set_property(TARGET LuaJIT::LuaJIT APPEND PROPERTY
60+
IMPORTED_LOCATION "${LuaJIT_LIBRARY}")
61+
endif()
62+
endif()
63+
endif()
64+
unset(LuaJIT_SEARCH_ROOT)
65+
else ()
66+
find_package(PkgConfig)
67+
if (PKG_CONFIG_FOUND)
68+
pkg_check_modules(PC_LUAJIT QUIET luajit)
69+
endif()
70+
71+
set(LUAJIT_DEFINITIONS ${PC_LUAJIT_CFLAGS_OTHER})
72+
73+
find_path(LUAJIT_INCLUDE_DIR luajit.h
74+
PATHS ${PC_LUAJIT_INCLUDEDIR} ${PC_LUAJIT_INCLUDE_DIRS}
75+
PATH_SUFFIXES luajit-2.0 luajit-2.1)
76+
77+
if(MSVC)
78+
list(APPEND LUAJIT_NAMES lua51)
79+
elseif(MINGW)
80+
list(APPEND LUAJIT_NAMES libluajit libluajit-5.1)
81+
else()
82+
list(APPEND LUAJIT_NAMES luajit-5.1)
83+
endif()
84+
85+
find_library(LUAJIT_LIBRARY NAMES ${LUAJIT_NAMES}
86+
PATHS ${PC_LUAJIT_LIBDIR} ${PC_LUAJIT_LIBRARY_DIRS})
87+
88+
set(LUAJIT_LIBRARIES ${LUAJIT_LIBRARY})
89+
set(LUAJIT_INCLUDE_DIRS ${LUAJIT_INCLUDE_DIR})
90+
91+
include(FindPackageHandleStandardArgs)
92+
# handle the QUIETLY and REQUIRED arguments and set LUAJIT_FOUND to TRUE
93+
# if all listed variables are TRUE
94+
find_package_handle_standard_args(LuaJit DEFAULT_MSG
95+
LUAJIT_LIBRARY LUAJIT_INCLUDE_DIR)
96+
97+
mark_as_advanced(LUAJIT_INCLUDE_DIR LUAJIT_LIBRARY)
98+
endif()

cmake/FindLuaJit.cmake

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)