Skip to content

Commit d5bf19e

Browse files
committed
Add MO2_INSTALL_IS_BIN option.
1 parent c8ecc87 commit d5bf19e

File tree

4 files changed

+27
-14
lines changed

4 files changed

+27
-14
lines changed

mo2.cmake

+9
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@ if (DEFINED MO2_DEFINED)
44
return()
55
endif()
66

7+
option(MO2_INSTALL_IS_BIN
8+
"if set, CMAKE_INSTALL_PREFIX is assumed to point to bin rather than one level below")
9+
10+
if (MO2_INSTALL_IS_BIN)
11+
set(MO2_INSTALL_BIN ".")
12+
else()
13+
set(MO2_INSTALL_BIN "bin")
14+
endif()
15+
716
include(${CMAKE_CURRENT_LIST_DIR}/mo2_versions.cmake)
817
include(${CMAKE_CURRENT_LIST_DIR}/mo2_utils.cmake)
918

mo2_cpp.cmake

+8-6
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ endfunction()
304304
function(mo2_configure_plugin TARGET)
305305
mo2_configure_target(${TARGET} ${ARGN})
306306
mo2_set_project_to_run_from_install(
307-
${TARGET} EXECUTABLE ${CMAKE_INSTALL_PREFIX}/bin/ModOrganizer.exe)
307+
${TARGET} EXECUTABLE ${CMAKE_INSTALL_PREFIX}/${MO2_INSTALL_BIN}/ModOrganizer.exe)
308308
endfunction()
309309

310310
#! mo2_install_plugin : install the given MO2 plugin
@@ -317,13 +317,15 @@ function(mo2_install_plugin TARGET)
317317
cmake_parse_arguments(MO2 "FOLDER" "" "" ${ARGN})
318318

319319
if (${MO2_FOLDER})
320-
install(TARGETS ${TARGET} RUNTIME DESTINATION bin/plugins/$<TARGET_FILE_BASE_NAME:${TARGET}>)
320+
install(TARGETS ${TARGET} RUNTIME DESTINATION ${MO2_INSTALL_BIN}/plugins/$<TARGET_FILE_BASE_NAME:${TARGET}>)
321321
else()
322-
install(TARGETS ${TARGET} RUNTIME DESTINATION bin/plugins)
322+
install(TARGETS ${TARGET} RUNTIME DESTINATION ${MO2_INSTALL_BIN}/plugins)
323323
endif()
324-
install(TARGETS ${TARGET} ARCHIVE DESTINATION lib)
325324

326-
# install PDB if possible
327-
install(FILES $<TARGET_PDB_FILE:${TARGET}> DESTINATION pdb OPTIONAL)
325+
if (NOT MO2_INSTALL_IS_BIN)
326+
install(TARGETS ${TARGET} ARCHIVE DESTINATION lib)
327+
# install PDB if possible
328+
install(FILES $<TARGET_PDB_FILE:${TARGET}> DESTINATION pdb OPTIONAL)
329+
endif()
328330

329331
endfunction()

mo2_python.cmake

+3-3
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ function(mo2_python_requirements TARGET)
175175

176176
install(
177177
DIRECTORY "${MO2_LIBDIR}"
178-
DESTINATION "bin/plugins/${TARGET}/"
178+
DESTINATION "${MO2_INSTALL_BIN}/plugins/${TARGET}/"
179179
PATTERN "__pycache__" EXCLUDE
180180
)
181181

@@ -230,7 +230,7 @@ function(mo2_configure_python_module TARGET)
230230
FILES "${PROJECT_SOURCE_DIR}/plugin-requirements.txt")
231231
endif()
232232

233-
set(install_dir "bin/plugins/${TARGET}")
233+
set(install_dir "${MO2_INSTALL_BIN}/plugins/${TARGET}")
234234

235235
# directories that go in bin/plugins/${name}
236236
install(
@@ -290,7 +290,7 @@ function(mo2_configure_python_simple TARGET)
290290
PREFIX data
291291
FILES ${json_files})
292292

293-
set(install_dir "bin/plugins")
293+
set(install_dir "${MO2_INSTALL_BIN}/plugins")
294294

295295
# .py files directly in src/ go to plugins/
296296
install(FILES ${py_files} DESTINATION ${install_dir})

mo2_utils.cmake

+7-5
Original file line numberDiff line numberDiff line change
@@ -181,12 +181,14 @@ endfunction()
181181
# this function attach install() entries that deploy Qt for the given binaries
182182
#
183183
# \param:NOPLUGINS do not deploy Qt plugins
184+
# \param:DIRECTORY directory, relative to CMAKE_INSTALL_PREFIX, to deploy to, default
185+
# to ${MO2_INSTALL_BIN}
184186
# \param:BINARIES names of the binaries (in the install path) to deploy from
185187
#
186188
function(mo2_deploy_qt)
187189
cmake_parse_arguments(DEPLOY "NOPLUGINS" "DIRECTORY" "BINARIES" ${ARGN})
188190

189-
mo2_set_if_not_defined(DEPLOY_DIRECTORY "bin")
191+
mo2_set_if_not_defined(DEPLOY_DIRECTORY "${MO2_INSTALL_BIN}")
190192

191193
mo2_find_qt_executable(windeployqt windeployqt)
192194

@@ -353,14 +355,14 @@ endfunction()
353355
# \param:TARGET target to generate releases for
354356
# \param:INSTALL if set, QM files will be installed
355357
# \param:DIRECTORY if INSTALL is set, path where translations should be installed,
356-
# default to bin/translations
358+
# default to ${MO2_INSTALL_BIN}/translations
357359
# \param:QM_FILE .qm file to generate
358360
# \param:TS_FILES source ts
359361
#
360362
function(mo2_add_lrelease TARGET)
361363
cmake_parse_arguments(MO2 "INSTALL" "DIRECTORY;QM_FILE" "TS_FILES" ${ARGN})
362364

363-
mo2_set_if_not_defined(MO2_DIRECTORY "bin/translations")
365+
mo2_set_if_not_defined(MO2_DIRECTORY "${MO2_INSTALL_BIN}/translations")
364366

365367
mo2_find_qt_executable(lrelease_command lrelease)
366368

@@ -395,7 +397,7 @@ endfunction()
395397
# \param:TARGET target to generate translations for
396398
# \param:RELEASE if set, will use mo2_add_lrelease to generate .qm files
397399
# \param:INSTALL_RELEASE if true, will install generated .qm files (force RELEASE)
398-
# \param:INSTALL_DIRECTORY installation directory for .qm files, default to bin/translations
400+
# \param:INSTALL_DIRECTORY installation directory for .qm files, default to ${MO2_INSTALL_BIN}/translations
399401
# \param:TS_FILE intermediate .ts file to generate
400402
# \param:QM_FILE file .qm file to generate if RELEASE or INSTALL_RELEASE is set
401403
# \param:SOURCES source directories to look for translations, send to mo2_add_lupdate
@@ -405,7 +407,7 @@ function(mo2_add_translations TARGET)
405407

406408
mo2_set_if_not_defined(MO2_TS_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET}_en.ts)
407409
mo2_set_if_not_defined(MO2_QM_FILE ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_en.qm)
408-
mo2_set_if_not_defined(MO2_INSTALL_DIRECTORY "bin/translations")
410+
mo2_set_if_not_defined(MO2_INSTALL_DIRECTORY "${MO2_INSTALL_BIN}/translations")
409411

410412
# force release with install
411413
if (${MO2_INSTALL_RELEASE})

0 commit comments

Comments
 (0)