mirror of
https://github.com/mwpenny/portal64-still-alive.git
synced 2024-10-19 10:17:36 -04:00
CMake: automatically find programs used in build
Blender 3.6 and ImageMagick 6 versions are also enforced
This commit is contained in:
parent
08368ffa25
commit
22ea93d19f
|
@ -8,30 +8,27 @@ add_compile_definitions(CMAKE)
|
|||
|
||||
set(USING_LIBULTRA TRUE)
|
||||
|
||||
# Tools
|
||||
# TODO: find automatically
|
||||
# TODO: test on Windows
|
||||
set(BLENDER_3_6 "blender")
|
||||
set(FFMPEG "ffmpeg")
|
||||
set(GIT "git")
|
||||
set(IMAGEMAGICK_CONVERT "convert")
|
||||
set(MPG123 "mpg123")
|
||||
set(NODEJS "node")
|
||||
set(PYTHON3 "python")
|
||||
set(SFZ2N64 "sfz2n64")
|
||||
set(SOX "sox")
|
||||
set(VPK "vpk")
|
||||
set(VTF2PNG "vtf2png")
|
||||
find_package(Blender 3.6 EXACT REQUIRED)
|
||||
find_program(FFmpeg_EXECUTABLE ffmpeg REQUIRED)
|
||||
find_program(Git_EXECUTABLE git REQUIRED)
|
||||
find_package(ImageMagickConvert 6 EXACT REQUIRED)
|
||||
find_program(NodeJs_EXECUTABLE node REQUIRED)
|
||||
find_package(Python3 REQUIRED)
|
||||
find_program(SFZ2N64_EXECUTABLE sfz2n64 REQUIRED)
|
||||
find_program(Sox_EXECUTABLE sox REQUIRED)
|
||||
find_program(VPK_EXECUTABLE vpk REQUIRED)
|
||||
find_program(VTF2PNG_EXECUTABLE vtf2png REQUIRED)
|
||||
|
||||
set(SKELETOOL64 "${PROJECT_SOURCE_DIR}/skelatool64/skeletool64")
|
||||
|
||||
# Directories
|
||||
set(ASSETS_DIR "${PROJECT_SOURCE_DIR}/assets")
|
||||
set(PAK_DIR "${PROJECT_SOURCE_DIR}/portal_pak_dir")
|
||||
set(PAK_MODIFIED_DIR "${PROJECT_SOURCE_DIR}/portal_pak_modified")
|
||||
set(SRC_DIR "${PROJECT_SOURCE_DIR}/src")
|
||||
set(VPK_DIR "${PROJECT_SOURCE_DIR}/vpk")
|
||||
|
||||
set(PAK_DIR "${PROJECT_SOURCE_DIR}/portal_pak_dir")
|
||||
set(PAK_MODIFIED_DIR "${PROJECT_SOURCE_DIR}/portal_pak_modified")
|
||||
|
||||
add_subdirectory(${ASSETS_DIR})
|
||||
add_subdirectory(${SRC_DIR})
|
||||
add_subdirectory(${VPK_DIR})
|
||||
|
|
2
Makefile
2
Makefile
|
@ -538,7 +538,7 @@ build/assets/%.aifc: assets/%.sox portal_pak_dir/%.wav
|
|||
|
||||
build/assets/%.aifc: assets/%.jsox tools/sound/jsox.js portal_pak_dir/%.wav
|
||||
@mkdir -p $(@D)
|
||||
node tools/sound/jsox.js $< $(<:assets/%.jsox=portal_pak_dir/%.wav) $(@:%.aifc=%.wav)
|
||||
node tools/sound/jsox.js sox $< $(<:assets/%.jsox=portal_pak_dir/%.wav) $(@:%.aifc=%.wav)
|
||||
$(SFZ2N64) -o $@ $(@:%.aifc=%.wav)
|
||||
|
||||
build/assets/%.aifc: assets/%.msox portal_pak_dir/%.mp3
|
||||
|
|
|
@ -111,7 +111,7 @@ function(_add_texture_convert_command INPUT_FILE OUTPUT_FILE)
|
|||
OUTPUT
|
||||
${OUTPUT_FILE}
|
||||
COMMAND
|
||||
${VTF2PNG} ${ARGS} ${INPUT_FILE} ${OUTPUT_FILE}
|
||||
${VTF2PNG_EXECUTABLE} ${ARGS} ${INPUT_FILE} ${OUTPUT_FILE}
|
||||
COMMENT
|
||||
"Converting $<PATH:RELATIVE_PATH,${INPUT_FILE},${PROJECT_SOURCE_DIR}>"
|
||||
VERBATIM
|
||||
|
@ -174,7 +174,7 @@ function(_add_extract_frame_command INPUT_FILE OUTPUT_FILE SECONDS)
|
|||
COMMAND
|
||||
${CMAKE_COMMAND} -E make_directory ${OUTPUT_DIR}
|
||||
COMMAND
|
||||
${FFMPEG}
|
||||
${FFmpeg_EXECUTABLE}
|
||||
-ss 00:00:${SECONDS}
|
||||
-i ${INPUT_FILE}
|
||||
-frames:v 1
|
||||
|
@ -183,7 +183,8 @@ function(_add_extract_frame_command INPUT_FILE OUTPUT_FILE SECONDS)
|
|||
-loglevel error
|
||||
-y ${OUTPUT_FILE}
|
||||
COMMAND
|
||||
${IMAGEMAGICK_CONVERT} ${OUTPUT_FILE} -crop 491x369+265+202 -resize 160x120 ${OUTPUT_FILE}
|
||||
${ImageMagickConvert_EXECUTABLE}
|
||||
${OUTPUT_FILE} -crop 491x369+265+202 -resize 160x120 ${OUTPUT_FILE}
|
||||
COMMENT
|
||||
"Extracting frame from $<PATH:RELATIVE_PATH,${INPUT_FILE},${PROJECT_SOURCE_DIR}>"
|
||||
VERBATIM
|
||||
|
@ -256,8 +257,11 @@ function(_add_texture_transform_command TEXTURE_SCRIPT OUTPUT_LIST)
|
|||
COMMAND
|
||||
${CMAKE_COMMAND} -E make_directory ${OUTPUT_DIR}
|
||||
COMMAND
|
||||
${PYTHON3} ${CONVERT_ASSET}
|
||||
${IMAGEMAGICK_CONVERT} ${INPUT_FILE} ${TEXTURE_SCRIPT} ${OUTPUT_FILE}
|
||||
${Python3_EXECUTABLE} ${CONVERT_ASSET}
|
||||
${ImageMagickConvert_EXECUTABLE}
|
||||
${INPUT_FILE}
|
||||
${TEXTURE_SCRIPT}
|
||||
${OUTPUT_FILE}
|
||||
WORKING_DIRECTORY
|
||||
# TODO: Change this to PAK_MODIFIED_MATERIALS_DIR and update .ims files with relative path
|
||||
${PROJECT_SOURCE_DIR}
|
||||
|
|
|
@ -111,7 +111,8 @@ function(_add_model_export_command MODEL_NAME OUTPUT_VARIABLE)
|
|||
COMMAND
|
||||
${CMAKE_COMMAND} -E make_directory ${OUTPUT_DIR}
|
||||
COMMAND
|
||||
${BLENDER_3_6} ${INPUT_FILE} --background --python ${EXPORT_FBX} -- ${OUTPUT_FILE}
|
||||
${Blender_EXECUTABLE}
|
||||
${INPUT_FILE} --background --python ${EXPORT_FBX} -- ${OUTPUT_FILE}
|
||||
COMMENT
|
||||
"Exporting $<PATH:RELATIVE_PATH,${INPUT_FILE},${PROJECT_SOURCE_DIR}>"
|
||||
VERBATIM
|
||||
|
@ -163,7 +164,7 @@ function(_add_model_generate_command MODEL_NAME MODEL_FBX OUTPUT_LIST)
|
|||
COMMAND
|
||||
${CMAKE_COMMAND} -E make_directory ${OUTPUT_DIR}
|
||||
COMMAND
|
||||
${PYTHON3} ${CONVERT_ASSET}
|
||||
${Python3_EXECUTABLE} ${CONVERT_ASSET}
|
||||
${SKELETOOL64}
|
||||
${MODEL_FBX}
|
||||
${MODEL_FLAGS}
|
||||
|
@ -260,7 +261,7 @@ add_custom_command(
|
|||
OUTPUT
|
||||
${DYNAMIC_MODEL_LIST_H} ${DYNAMIC_MODEL_LIST_C}
|
||||
COMMAND
|
||||
${NODEJS} ${GEN_DYNAMIC_MODEL_LIST}
|
||||
${NodeJs_EXECUTABLE} ${GEN_DYNAMIC_MODEL_LIST}
|
||||
${DYNAMIC_MODEL_LIST_H}
|
||||
${DYNAMIC_MODEL_HEADERS}
|
||||
COMMENT
|
||||
|
@ -277,7 +278,7 @@ add_custom_command(
|
|||
OUTPUT
|
||||
${DYNAMIC_ANIMATED_MODEL_LIST_H} ${DYNAMIC_ANIMATED_MODEL_LIST_C}
|
||||
COMMAND
|
||||
${NODEJS} ${GEN_DYNAMIC_ANIM_MODEL_LIST}
|
||||
${NodeJs_EXECUTABLE} ${GEN_DYNAMIC_ANIM_MODEL_LIST}
|
||||
${DYNAMIC_ANIMATED_MODEL_LIST_H}
|
||||
${DYNAMIC_ANIMATED_MODEL_HEADERS}
|
||||
COMMENT
|
||||
|
|
|
@ -30,7 +30,8 @@ function(_add_extract_video_audio_command INPUT_FILE OUTPUT_FILE)
|
|||
COMMAND
|
||||
${CMAKE_COMMAND} -E make_directory ${OUTPUT_DIR}
|
||||
COMMAND
|
||||
${FFMPEG} -i ${INPUT_FILE} -vn -loglevel error -y ${OUTPUT_FILE}
|
||||
${FFmpeg_EXECUTABLE}
|
||||
-i ${INPUT_FILE} -vn -loglevel error -y ${OUTPUT_FILE}
|
||||
COMMENT
|
||||
"Extracting audio from $<PATH:RELATIVE_PATH,${INPUT_FILE},${PROJECT_SOURCE_DIR}>"
|
||||
VERBATIM
|
||||
|
@ -209,7 +210,7 @@ function(_add_sound_transform_command_direct SOUND_NAME ARGS OUTPUT_LIST)
|
|||
COMMAND
|
||||
${CMAKE_COMMAND} -E make_directory ${OUTPUT_DIR}
|
||||
COMMAND
|
||||
${SOX} ${INPUT_FILE} ${ARGS} ${OUTPUT_FILE} -V1
|
||||
${Sox_EXECUTABLE} ${INPUT_FILE} ${ARGS} ${OUTPUT_FILE} -V1
|
||||
COMMENT
|
||||
"Transforming $<PATH:RELATIVE_PATH,${INPUT_FILE},${PROJECT_SOURCE_DIR}>"
|
||||
VERBATIM
|
||||
|
@ -236,7 +237,7 @@ function(_add_sound_transform_command_sox SOUND_SCRIPT INPUT_FILE OUTPUT_FILE)
|
|||
${CMAKE_COMMAND} -E make_directory ${OUTPUT_DIR}
|
||||
COMMAND
|
||||
${Python3_EXECUTABLE} ${CONVERT_ASSET}
|
||||
${SOX} ${INPUT_FILE} ${SOUND_SCRIPT} ${OUTPUT_FILE} -V1
|
||||
${Sox_EXECUTABLE} ${INPUT_FILE} ${SOUND_SCRIPT} ${OUTPUT_FILE} -V1
|
||||
COMMENT
|
||||
"Transforming $<PATH:RELATIVE_PATH,${INPUT_FILE},${PROJECT_SOURCE_DIR}>"
|
||||
VERBATIM
|
||||
|
@ -252,7 +253,8 @@ function(_add_sound_transform_command_jsox SOUND_SCRIPT INPUT_FILE OUTPUT_FILE)
|
|||
OUTPUT
|
||||
${OUTPUT_FILE}
|
||||
COMMAND
|
||||
${NODEJS} ${JSOX} ${SOUND_SCRIPT} ${INPUT_FILE} ${OUTPUT_FILE}
|
||||
${NodeJs_EXECUTABLE} ${JSOX}
|
||||
${Sox_EXECUTABLE} ${SOUND_SCRIPT} ${INPUT_FILE} ${OUTPUT_FILE}
|
||||
COMMENT
|
||||
"Transforming $<PATH:RELATIVE_PATH,${INPUT_FILE},${PROJECT_SOURCE_DIR}>"
|
||||
VERBATIM
|
||||
|
@ -299,7 +301,8 @@ function(_add_music_transform_command MUSIC_SCRIPT OUTPUT_LIST)
|
|||
OUTPUT
|
||||
${CONVERTED_FILE}
|
||||
COMMAND
|
||||
${FFMPEG} -y -i ${INPUT_FILE} ${CONVERTED_FILE}
|
||||
${FFmpeg_EXECUTABLE}
|
||||
-i ${INPUT_FILE} -loglevel error -y ${CONVERTED_FILE}
|
||||
COMMENT
|
||||
"Converting $<PATH:RELATIVE_PATH,${INPUT_FILE},${PROJECT_SOURCE_DIR}>"
|
||||
VERBATIM
|
||||
|
@ -353,7 +356,7 @@ function(_add_sound_convert_command INPUT_FILE OUTPUT_LIST)
|
|||
OUTPUT
|
||||
${OUTPUT_FILE}
|
||||
COMMAND
|
||||
${SFZ2N64} -o ${OUTPUT_FILE} ${INPUT_FILE}
|
||||
${SFZ2N64_EXECUTABLE} -o ${OUTPUT_FILE} ${INPUT_FILE}
|
||||
COMMENT
|
||||
"Converting $<PATH:RELATIVE_PATH,${INPUT_FILE},${PROJECT_SOURCE_DIR}>"
|
||||
VERBATIM
|
||||
|
@ -427,7 +430,7 @@ add_custom_command(
|
|||
OUTPUT
|
||||
${SOUND_DATA_TABLE_FILES}
|
||||
COMMAND
|
||||
${SFZ2N64} -o ${SOUND_TABLE_SOUNDS} ${SOUND_TABLE_INPUTS}
|
||||
${SFZ2N64_EXECUTABLE} -o ${SOUND_TABLE_SOUNDS} ${SOUND_TABLE_INPUTS}
|
||||
COMMENT
|
||||
"Generating sound data tables"
|
||||
VERBATIM
|
||||
|
@ -449,7 +452,8 @@ add_custom_command(
|
|||
OUTPUT
|
||||
${SOUND_LOOKUP_TABLE_FILES}
|
||||
COMMAND
|
||||
${NODEJS} ${GEN_SOUND_IDS} -o ${BUILD_AUDIO_DIR} -p SOUNDS_ ${SOUND_TABLE_INPUTS}
|
||||
${NodeJs_EXECUTABLE} ${GEN_SOUND_IDS}
|
||||
-o ${BUILD_AUDIO_DIR} -p SOUNDS_ ${SOUND_TABLE_INPUTS}
|
||||
WORKING_DIRECTORY
|
||||
# TODO: Update once script is refactored
|
||||
${PROJECT_SOURCE_DIR}
|
||||
|
|
|
@ -73,7 +73,8 @@ function(_add_level_export_command LEVEL_NAME OUTPUT_VARIABLE)
|
|||
COMMAND
|
||||
${CMAKE_COMMAND} -E make_directory ${OUTPUT_DIR}
|
||||
COMMAND
|
||||
${BLENDER_3_6} ${INPUT_FILE} --background --python ${EXPORT_FBX} -- ${OUTPUT_FILE}
|
||||
${Blender_EXECUTABLE}
|
||||
${INPUT_FILE} --background --python ${EXPORT_FBX} -- ${OUTPUT_FILE}
|
||||
COMMENT
|
||||
"Exporting $<PATH:RELATIVE_PATH,${INPUT_FILE},${PROJECT_SOURCE_DIR}>"
|
||||
VERBATIM
|
||||
|
@ -167,7 +168,8 @@ add_custom_command(
|
|||
OUTPUT
|
||||
${LEVEL_LIST}
|
||||
COMMAND
|
||||
${NODEJS} ${GEN_LEVEL_LIST} ${LEVEL_LIST} ${LEVEL_GENERATED_HEADERS}
|
||||
${NodeJs_EXECUTABLE} ${GEN_LEVEL_LIST}
|
||||
${LEVEL_LIST} ${LEVEL_GENERATED_HEADERS}
|
||||
WORKING_DIRECTORY
|
||||
${LEVEL_LIST_OUT_DIR}
|
||||
COMMENT
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
set(SUBTITLE_GENERATE "${PROJECT_SOURCE_DIR}/tools/subtitle_generate.py")
|
||||
|
||||
###############
|
||||
## Subtitles ##
|
||||
###############
|
||||
##################
|
||||
## Translations ##
|
||||
##################
|
||||
|
||||
set(STRINGS
|
||||
"${VPK_DIR}/Portal/hl2/resource/gameui_english.txt"
|
||||
|
@ -58,7 +58,7 @@ add_custom_command(
|
|||
${STRING_GENERATED_FILES}
|
||||
COMMAND
|
||||
# TODO: update script to have configurable output location
|
||||
${PYTHON3} ${SUBTITLE_GENERATE}
|
||||
${Python3_EXECUTABLE} ${SUBTITLE_GENERATE}
|
||||
WORKING_DIRECTORY
|
||||
# TODO: Update once script is refactored
|
||||
${PROJECT_SOURCE_DIR}
|
||||
|
|
33
cmake/FindBlender.cmake
Normal file
33
cmake/FindBlender.cmake
Normal file
|
@ -0,0 +1,33 @@
|
|||
##################
|
||||
## Find Blender ##
|
||||
##################
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_program(Blender_EXECUTABLE blender)
|
||||
|
||||
if(Blender_EXECUTABLE)
|
||||
execute_process(
|
||||
COMMAND
|
||||
${Blender_EXECUTABLE} --version
|
||||
RESULT_VARIABLE
|
||||
VERSION_COMMAND_RC
|
||||
OUTPUT_VARIABLE
|
||||
VERSION_COMMAND_OUTPUT
|
||||
ERROR_VARIABLE
|
||||
VERSION_COMMAND_ERROR
|
||||
)
|
||||
|
||||
if (NOT VERSION_COMMAND_RC EQUAL 0)
|
||||
message(SEND_ERROR "Error getting Blender version: ${VERSION_COMMAND_ERROR}")
|
||||
elseif(VERSION_COMMAND_OUTPUT MATCHES "^Blender ([0-9\\.]+)")
|
||||
set(VERSION_NUMBER "${CMAKE_MATCH_1}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package_handle_standard_args(Blender
|
||||
REQUIRED_VARS
|
||||
Blender_EXECUTABLE
|
||||
VERSION_VAR
|
||||
VERSION_NUMBER
|
||||
)
|
37
cmake/FindImageMagickConvert.cmake
Normal file
37
cmake/FindImageMagickConvert.cmake
Normal file
|
@ -0,0 +1,37 @@
|
|||
##############################
|
||||
## Find ImageMagick convert ##
|
||||
##############################
|
||||
|
||||
# The built-in find module for ImageMagick uses find_path, which will
|
||||
# fail since the N64 toolchain sets CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
|
||||
# to "ONLY" (desirable). Use this simplified version instead.
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_program(ImageMagickConvert_EXECUTABLE convert)
|
||||
|
||||
if(ImageMagickConvert_EXECUTABLE)
|
||||
execute_process(
|
||||
COMMAND
|
||||
${ImageMagickConvert_EXECUTABLE} -version
|
||||
RESULT_VARIABLE
|
||||
VERSION_COMMAND_RC
|
||||
OUTPUT_VARIABLE
|
||||
VERSION_COMMAND_OUTPUT
|
||||
ERROR_VARIABLE
|
||||
VERSION_COMMAND_ERROR
|
||||
)
|
||||
|
||||
if (NOT VERSION_COMMAND_RC EQUAL 0)
|
||||
message(SEND_ERROR "Error getting ImageMagick version: ${VERSION_COMMAND_ERROR}")
|
||||
elseif(VERSION_COMMAND_OUTPUT MATCHES "^Version: ImageMagick ([-0-9\\.]+)")
|
||||
set(VERSION_NUMBER "${CMAKE_MATCH_1}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package_handle_standard_args(ImageMagickConvert
|
||||
REQUIRED_VARS
|
||||
ImageMagickConvert_EXECUTABLE
|
||||
VERSION_VAR
|
||||
VERSION_NUMBER
|
||||
)
|
|
@ -1,17 +1,17 @@
|
|||
###################
|
||||
## Find libultra ##
|
||||
###################
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_path(Libultra_INCLUDE_DIR ultra64.h
|
||||
PATH_SUFFIXES
|
||||
"n64"
|
||||
DOC
|
||||
"Libultra include directory"
|
||||
)
|
||||
|
||||
find_library(Libultra_LIBRARY ultra_rom
|
||||
PATH_SUFFIXES
|
||||
"n64"
|
||||
DOC
|
||||
"Libultra library file"
|
||||
)
|
||||
|
||||
find_package_handle_standard_args(Libultra
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
# First try getting the version from git
|
||||
execute_process(
|
||||
COMMAND
|
||||
${GIT} describe --tags HEAD
|
||||
${Git_EXECUTABLE} describe --tags HEAD
|
||||
RESULT_VARIABLE
|
||||
GIT_DESCRIBE_RC
|
||||
OUTPUT_VARIABLE
|
||||
|
|
|
@ -177,7 +177,10 @@ add_custom_target(gen_version_header
|
|||
DEPENDS
|
||||
${GEN_VERSION_HEADER}
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -D GIT=${GIT} -D OUTPUT_FILE=${VERSION_H} -P ${GEN_VERSION_HEADER}
|
||||
${CMAKE_COMMAND}
|
||||
-D Git_EXECUTABLE=${Git_EXECUTABLE}
|
||||
-D OUTPUT_FILE=${VERSION_H}
|
||||
-P ${GEN_VERSION_HEADER}
|
||||
WORKING_DIRECTORY
|
||||
${PROJECT_SOURCE_DIR}
|
||||
VERBATIM
|
||||
|
|
|
@ -2,19 +2,19 @@ const child_process = require('child_process');
|
|||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
if (process.argv.length !== 5) {
|
||||
if (process.argv.length !== 6) {
|
||||
console.log('Converts sound files using sox and a JSON file containing arguments.\n');
|
||||
console.log(`Usage: ${process.argv[0]} ${process.argv[1]} JSOX_FILE INPUT_FILE OUTPUT_FILE`);
|
||||
console.log(`Usage: ${process.argv[0]} ${process.argv[1]} SOX_PATH JSOX_FILE INPUT_FILE OUTPUT_FILE`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const [argsFile, inputFile, outputFile] = process.argv.slice(2);
|
||||
const [soxPath, argsFile, inputFile, outputFile] = process.argv.slice(2);
|
||||
|
||||
const fileContents = fs.readFileSync(argsFile);
|
||||
const fileJSON = JSON.parse(fileContents);
|
||||
|
||||
fileJSON.forEach((command) => {
|
||||
const commandText = `sox -V1 ${inputFile} ${command.flags || ''} ${outputFile} ${command.filters || ''}`;
|
||||
const commandText = `${soxPath} -V1 ${inputFile} ${command.flags || ''} ${outputFile} ${command.filters || ''}`;
|
||||
|
||||
const outputParentDir = path.dirname(outputFile);
|
||||
if (!fs.existsSync(outputParentDir)) {
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
## VPK extraction ##
|
||||
####################
|
||||
|
||||
# TODO: automatic discovery of game files
|
||||
# TODO: multiple languages
|
||||
set(VPKS_PORTAL
|
||||
Portal/portal/portal_pak_dir.vpk
|
||||
|
@ -44,7 +45,7 @@ function(_add_vpk_extract_command VPK_LIST OUTPUT_LIST)
|
|||
OUTPUT
|
||||
${MAIN_VPK_STAMP}
|
||||
COMMAND
|
||||
${VPK} -x ${PAK_DIR} ${MAIN_VPK}
|
||||
${VPK_EXECUTABLE} -x ${PAK_DIR} ${MAIN_VPK}
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E touch ${MAIN_VPK_STAMP}
|
||||
WORKING_DIRECTORY
|
||||
|
|
Loading…
Reference in a new issue