Compare commits
81 commits
mia
...
dev-upgrad
Author | SHA1 | Date | |
---|---|---|---|
|
6b41659178 | ||
|
186c98308e | ||
|
7c500a096a | ||
|
bd4c7789cf | ||
|
3eff75d56e | ||
|
da699f124e | ||
|
1204a3be85 | ||
|
9e6b7e94c0 | ||
|
ad02d39f44 | ||
|
d914ad72b5 | ||
|
055aa379e5 | ||
|
97792e15a8 | ||
|
4a874de442 | ||
|
5d14137710 | ||
|
d252dcf32d | ||
|
4f351b8b4a | ||
|
c4e0f40370 | ||
|
05c0ba0e46 | ||
|
e4e04c9e87 | ||
|
81160b2ec0 | ||
|
bf28e7efc3 | ||
|
c2c44f1ad2 | ||
|
5dd201bc2d | ||
|
3663d118b6 | ||
|
60a722db31 | ||
|
d65643ddee | ||
|
fbca222295 | ||
|
3225ae39f4 | ||
|
888be0607f | ||
|
4200b85fb4 | ||
|
0b8b286767 | ||
|
139132a964 | ||
|
4a3689d6e7 | ||
|
248e69a9b6 | ||
|
46474e0319 | ||
|
50544cf749 | ||
|
e9a68f22b9 | ||
|
d6ddea0f65 | ||
|
2bbed6c5a0 | ||
|
592250eeaa | ||
|
8f40ca44ce | ||
|
f776db2d2b | ||
|
f9ffc46bf6 | ||
|
019e68147e | ||
|
f733297499 | ||
|
4c6d370d51 | ||
|
b7c640d061 | ||
|
2c06f03f5b | ||
|
1819fc8d8b | ||
|
ba54e8d12f | ||
|
c76e410d30 | ||
|
bb2cfb1fcd | ||
|
9abcc03202 | ||
|
837d5a41d7 | ||
|
875456c803 | ||
|
9ddecfdd46 | ||
|
70f27eae4b | ||
|
8d2ef3fca7 | ||
|
48869ae0ad | ||
|
b00285cf71 | ||
|
c6c9e05406 | ||
|
fc1a78aeca | ||
|
38bb1790ab | ||
|
fff08c4650 | ||
|
163d57d6a2 | ||
|
6266867586 | ||
|
4431f678ce | ||
|
419386aadd | ||
|
c4cce28766 | ||
|
1ae2f60b9a | ||
|
b6eebcd7ef | ||
|
bf55264e6d | ||
|
34575a9786 | ||
|
69310d40ae | ||
|
657d9d5149 | ||
|
043a45cf91 | ||
|
ad15c53fb1 | ||
|
841a35a6fd | ||
|
ee7dc6af4e | ||
|
77da2436c5 | ||
|
7be2325629 |
367 changed files with 46641 additions and 23581 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -5,6 +5,7 @@
|
|||
*.bz2
|
||||
*.cache
|
||||
*.dep
|
||||
*.db
|
||||
*.dll
|
||||
*.dmg
|
||||
*.exe
|
||||
|
@ -14,6 +15,7 @@
|
|||
*.ilk
|
||||
*.log
|
||||
*.manifest
|
||||
!src/dpi_aware.manifest
|
||||
*.mkv
|
||||
*.mo
|
||||
*.ncb
|
||||
|
@ -86,3 +88,4 @@ vendor/luajit/src/lj_vm.s
|
|||
vendor/luajit/src/luajit
|
||||
|
||||
.nuget
|
||||
.vs
|
||||
|
|
86
.travis.yml
86
.travis.yml
|
@ -1,5 +1,5 @@
|
|||
sudo: required
|
||||
dist: trusty
|
||||
dist: bionic
|
||||
language: cpp
|
||||
|
||||
git:
|
||||
|
@ -8,58 +8,68 @@ git:
|
|||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- sourceline: 'deb https://apt.kitware.com/ubuntu/ bionic main'
|
||||
key_url: 'https://apt.kitware.com/keys/kitware-archive-latest.asc'
|
||||
packages:
|
||||
- libasound2-dev
|
||||
- libfftw3-dev
|
||||
- libhunspell-dev
|
||||
- yasm
|
||||
- libfribidi-dev
|
||||
- libass-dev
|
||||
- libicu-dev
|
||||
- luarocks
|
||||
- g++-5
|
||||
- cmake
|
||||
- build-essential
|
||||
- libboost-all-dev
|
||||
- libffms2-dev
|
||||
- libfontconfig1-dev
|
||||
- libopenal-dev
|
||||
- libuchardet-dev
|
||||
- libwxgtk3.0-dev
|
||||
- portaudio19-dev
|
||||
- libpulse-dev
|
||||
- autopoint
|
||||
- libgtest-dev
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- compiler: gcc
|
||||
env: BOOST_VERSION=55
|
||||
- compiler: gcc
|
||||
env: BOOST_VERSION=60
|
||||
before_install:
|
||||
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5 --slave /usr/bin/gcov gcov /usr/bin/gcov-5
|
||||
- {}
|
||||
- env: BUILD_SUIT=autotools
|
||||
|
||||
install:
|
||||
# Can't install these via the apt addon due to the whitelist
|
||||
- sudo apt-get install -y -qq libffms2-dev libwxgtk3.0-dev libuchardet-dev
|
||||
|
||||
- sudo pip install cpp-coveralls
|
||||
- sudo luarocks install busted > /dev/null
|
||||
- sudo luarocks install moonscript > /dev/null
|
||||
- sudo luarocks install uuid > /dev/null
|
||||
|
||||
- git submodule --quiet init
|
||||
- git submodule --quiet update vendor/googletest
|
||||
|
||||
- cd vendor
|
||||
- rm -rf boost
|
||||
- wget http://sourceforge.net/projects/boost/files/boost/1.${BOOST_VERSION}.0/boost_1_${BOOST_VERSION}_0.tar.bz2/download
|
||||
- tar xjf download
|
||||
- mv boost_1_${BOOST_VERSION}_0 boost
|
||||
- cd boost
|
||||
- ./bootstrap.sh
|
||||
- ./b2 -j3 -layout=system threading=multi cxxflags=-std=c++11 link=shared variant=release --without-python --without-iostreams --without-serialization --without-graph --without-log --without-math --without-signals --without-test --without-wave --without-mpi --without-program_options --without-graph_parallel --without-context --without-coroutine --without-random --without-timer --without-date_time
|
||||
- cd ../..
|
||||
- sudo luarocks install busted > /dev/null
|
||||
- sudo luarocks install moonscript > /dev/null
|
||||
- sudo luarocks install uuid > /dev/null
|
||||
# Remove the CMake provided by travis
|
||||
- sudo rm -rf /usr/local/cmake*
|
||||
- if [ "$BUILD_SUIT" = "autotools" ]; then
|
||||
sudo pip install -U cpp-coveralls;
|
||||
git submodule --quiet init;
|
||||
git submodule --quiet update vendor/googletest;
|
||||
else
|
||||
pushd /usr/src/googletest;
|
||||
sudo cmake .;
|
||||
sudo make install -j2;
|
||||
popd;
|
||||
fi
|
||||
|
||||
script:
|
||||
- export CPATH=$(pwd)/vendor/boost
|
||||
- export LD_LIBRARY_PATH=$(pwd)/vendor/boost/stage/lib:$LD_LIBRARY_PATH
|
||||
- export CPPFLAGS="-fprofile-arcs -ftest-coverage"
|
||||
- export LIBS="-lgcov"
|
||||
- autoreconf -if
|
||||
- ./configure BOOST_LDFLAGS="-L$(pwd)/vendor/boost/stage/lib" --enable-debug || cat config.log
|
||||
- make -j3 all test
|
||||
- coveralls --exclude vendor --exclude src --exclude build --exclude tools --exclude libaegisub/windows > /dev/null
|
||||
- if [ "$BUILD_SUIT" = "autotools" ]; then
|
||||
export CPPFLAGS="-fprofile-arcs -ftest-coverage";
|
||||
export LIBS="-lgcov";
|
||||
./autogen.sh;
|
||||
./configure --enable-debug agi_cv_with_openal=yes || cat config.log;
|
||||
make -j2;
|
||||
make test || travis_terminate 1;
|
||||
coveralls --exclude vendor --exclude src --exclude build --exclude tools --exclude libaegisub/windows > /dev/null;
|
||||
else
|
||||
./build/version.sh .;
|
||||
mkdir build-dir;
|
||||
cd build-dir;
|
||||
cmake -DCMAKE_CXX_FLAGS='-Wall -Wextra -Wno-unused-parameter -pedantic' -DCMAKE_C_FLAGS='-Wall' -DWITH_STARTUPLOG=ON -DWITH_TEST=ON ..;
|
||||
make -j2;
|
||||
make test || travis_terminate 1;
|
||||
fi
|
||||
|
||||
notifications:
|
||||
email:
|
||||
|
|
78
CMakeLists.test.txt
Normal file
78
CMakeLists.test.txt
Normal file
|
@ -0,0 +1,78 @@
|
|||
if(UNIX)
|
||||
add_executable(aegisub-lua EXCLUDE_FROM_ALL
|
||||
automation/tests/aegisub.cpp
|
||||
)
|
||||
target_include_directories(aegisub-lua PRIVATE ${Boost_INCLUDE_DIRS})
|
||||
target_link_directories(aegisub-lua PRIVATE ${Boost_LIBRARY_DIRS})
|
||||
target_link_libraries(aegisub-lua libaegisub luabins luajit ${Boost_LIBRARIES} ${ICU_LIBRARIES})
|
||||
add_custom_target(test-automation
|
||||
COMMAND sh -c "$(luarocks path); ${PROJECT_BINARY_DIR}/aegisub-lua tests/busted.lua -p moon tests/modules"
|
||||
VERBATIM
|
||||
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/automation"
|
||||
)
|
||||
add_dependencies(test-automation aegisub-lua)
|
||||
else()
|
||||
add_custom_target(test-automation)
|
||||
endif()
|
||||
|
||||
find_package(GTest)
|
||||
if(GTEST_FOUND)
|
||||
add_executable(gtest-run EXCLUDE_FROM_ALL
|
||||
tests/tests/access.cpp
|
||||
tests/tests/audio.cpp
|
||||
tests/tests/cajun.cpp
|
||||
tests/tests/calltip_provider.cpp
|
||||
tests/tests/character_count.cpp
|
||||
tests/tests/color.cpp
|
||||
tests/tests/dialogue_lexer.cpp
|
||||
tests/tests/format.cpp
|
||||
tests/tests/fs.cpp
|
||||
tests/tests/hotkey.cpp
|
||||
tests/tests/iconv.cpp
|
||||
tests/tests/ifind.cpp
|
||||
tests/tests/karaoke_matcher.cpp
|
||||
tests/tests/keyframe.cpp
|
||||
tests/tests/line_iterator.cpp
|
||||
tests/tests/line_wrap.cpp
|
||||
tests/tests/mru.cpp
|
||||
tests/tests/option.cpp
|
||||
tests/tests/path.cpp
|
||||
tests/tests/signals.cpp
|
||||
tests/tests/split.cpp
|
||||
tests/tests/syntax_highlight.cpp
|
||||
tests/tests/thesaurus.cpp
|
||||
tests/tests/time.cpp
|
||||
tests/tests/type_name.cpp
|
||||
tests/tests/util.cpp
|
||||
tests/tests/uuencode.cpp
|
||||
tests/tests/vfr.cpp
|
||||
tests/tests/word_split.cpp
|
||||
tests/support/main.cpp
|
||||
tests/support/util.cpp
|
||||
)
|
||||
target_compile_definitions(gtest-run PRIVATE CMAKE_BUILD)
|
||||
target_include_directories(gtest-run PRIVATE tests/support ${GTEST_INCLUDE_DIRS})
|
||||
target_link_libraries(gtest-run libaegisub ${Boost_LIBRARIES} ${ICU_LIBRARIES} ${GTEST_LIBRARIES})
|
||||
if(MSVC)
|
||||
set_target_properties(gtest-run PROPERTIES COMPILE_FLAGS "/Yu${PROJECT_SOURCE_DIR}/tests/support/tests_pre.h" COMPILE_FLAGS "/FI${PROJECT_SOURCE_DIR}/tests/support/tests_pre.h")
|
||||
else()
|
||||
target_compile_options(gtest-run PRIVATE -include "${PROJECT_SOURCE_DIR}/tests/support/tests_pre.h")
|
||||
endif()
|
||||
if(WIN32)
|
||||
add_custom_target(test-aegisub
|
||||
COMMAND "${PROJECT_SOURCE_DIR}/tests/setup.bat"
|
||||
COMMAND gtest-run
|
||||
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/tests"
|
||||
)
|
||||
else()
|
||||
add_custom_target(test-aegisub
|
||||
COMMAND "${PROJECT_SOURCE_DIR}/tests/setup.sh"
|
||||
COMMAND gtest-run
|
||||
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/tests"
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
add_custom_target(test-aegisub)
|
||||
endif()
|
||||
|
||||
add_custom_target(test DEPENDS test-automation test-aegisub)
|
809
CMakeLists.txt
Normal file
809
CMakeLists.txt
Normal file
|
@ -0,0 +1,809 @@
|
|||
cmake_minimum_required(VERSION 3.14)
|
||||
cmake_policy(SET CMP0074 NEW)
|
||||
|
||||
project(Aegisub)
|
||||
|
||||
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
||||
|
||||
include_directories("build")
|
||||
include_directories("libaegisub/include")
|
||||
include_directories("vendor/luajit/src")
|
||||
|
||||
add_library(libaegisub STATIC
|
||||
libaegisub/common/parser.cpp
|
||||
libaegisub/ass/dialogue_parser.cpp
|
||||
libaegisub/ass/time.cpp
|
||||
libaegisub/ass/uuencode.cpp
|
||||
libaegisub/audio/provider.cpp
|
||||
libaegisub/audio/provider_convert.cpp
|
||||
libaegisub/audio/provider_dummy.cpp
|
||||
libaegisub/audio/provider_hd.cpp
|
||||
libaegisub/audio/provider_lock.cpp
|
||||
libaegisub/audio/provider_pcm.cpp
|
||||
libaegisub/audio/provider_ram.cpp
|
||||
libaegisub/common/cajun/elements.cpp
|
||||
libaegisub/common/cajun/reader.cpp
|
||||
libaegisub/common/cajun/writer.cpp
|
||||
libaegisub/lua/modules/lfs.cpp
|
||||
libaegisub/lua/modules/re.cpp
|
||||
libaegisub/lua/modules/unicode.cpp
|
||||
libaegisub/lua/modules/lpeg.c
|
||||
libaegisub/lua/modules.cpp
|
||||
libaegisub/lua/script_reader.cpp
|
||||
libaegisub/lua/utils.cpp
|
||||
libaegisub/common/calltip_provider.cpp
|
||||
libaegisub/common/character_count.cpp
|
||||
libaegisub/common/charset.cpp
|
||||
libaegisub/common/charset_6937.cpp
|
||||
libaegisub/common/charset_conv.cpp
|
||||
libaegisub/common/color.cpp
|
||||
libaegisub/common/file_mapping.cpp
|
||||
libaegisub/common/format.cpp
|
||||
libaegisub/common/fs.cpp
|
||||
libaegisub/common/hotkey.cpp
|
||||
libaegisub/common/io.cpp
|
||||
libaegisub/common/json.cpp
|
||||
libaegisub/common/kana_table.cpp
|
||||
libaegisub/common/karaoke_matcher.cpp
|
||||
libaegisub/common/keyframe.cpp
|
||||
libaegisub/common/line_iterator.cpp
|
||||
libaegisub/common/log.cpp
|
||||
libaegisub/common/mru.cpp
|
||||
libaegisub/common/option.cpp
|
||||
libaegisub/common/option_value.cpp
|
||||
libaegisub/common/path.cpp
|
||||
libaegisub/common/thesaurus.cpp
|
||||
libaegisub/common/util.cpp
|
||||
libaegisub/common/vfr.cpp
|
||||
libaegisub/common/ycbcr_conv.cpp
|
||||
libaegisub/common/dispatch.cpp
|
||||
)
|
||||
if(UNIX)
|
||||
target_sources(libaegisub PRIVATE
|
||||
libaegisub/unix/access.cpp
|
||||
libaegisub/unix/fs.cpp
|
||||
libaegisub/unix/log.cpp
|
||||
libaegisub/unix/path.cpp
|
||||
libaegisub/unix/util.cpp
|
||||
)
|
||||
set_property(
|
||||
SOURCE libaegisub/unix/path.cpp
|
||||
PROPERTY COMPILE_DEFINITIONS
|
||||
P_DATA="${CMAKE_INSTALL_PREFIX}/share/aegisub/"
|
||||
)
|
||||
elseif(WIN32)
|
||||
target_sources(libaegisub PRIVATE
|
||||
libaegisub/windows/access.cpp
|
||||
libaegisub/windows/charset_conv_win.cpp
|
||||
libaegisub/windows/fs.cpp
|
||||
libaegisub/windows/lagi_pre.cpp
|
||||
libaegisub/windows/log_win.cpp
|
||||
libaegisub/windows/path_win.cpp
|
||||
libaegisub/windows/util_win.cpp
|
||||
)
|
||||
endif()
|
||||
set_target_properties(libaegisub PROPERTIES PREFIX "")
|
||||
target_compile_definitions(libaegisub PRIVATE CMAKE_BUILD)
|
||||
|
||||
add_library(luabins STATIC
|
||||
vendor/luabins/src/fwrite.c
|
||||
vendor/luabins/src/load.c
|
||||
vendor/luabins/src/luabins.c
|
||||
vendor/luabins/src/luainternals.c
|
||||
vendor/luabins/src/save.c
|
||||
vendor/luabins/src/savebuffer.c
|
||||
vendor/luabins/src/write.c
|
||||
)
|
||||
|
||||
add_executable(luajit-minilua vendor/luajit/src/host/minilua.c)
|
||||
if(NOT WIN32)
|
||||
target_link_libraries(luajit-minilua m)
|
||||
endif()
|
||||
if(WIN32)
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/buildvm_arch.h
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen
|
||||
COMMAND luajit-minilua ../dynasm/dynasm.lua -LN -D WIN -D JIT -D FFI -D P64 -o gen/buildvm_arch.h vm_x86.dasc
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
)
|
||||
else()
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/buildvm_arch.h
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen
|
||||
COMMAND luajit-minilua ../dynasm/dynasm.lua -LN -D WIN -D JIT -D FFI -o gen/buildvm_arch.h vm_x86.dasc
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/buildvm_arch.h
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen
|
||||
COMMAND luajit-minilua ../dynasm/dynasm.lua -D P64 -D JIT -D FFI -D FPU -D HFABI -D VER= -o gen/buildvm_arch.h vm_x86.dasc
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
)
|
||||
else()
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/buildvm_arch.h
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen
|
||||
COMMAND luajit-minilua ../dynasm/dynasm.lua -D JIT -D FFI -D FPU -D HFABI -D VER= -o gen/buildvm_arch.h vm_x86.dasc
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_SOURCE_DIR}/src/libresrc/default_config.cpp ${PROJECT_SOURCE_DIR}/src/libresrc/default_config.h
|
||||
DEPENDS ${PROJECT_SOURCE_DIR}/src/libresrc/default_config_platform.json
|
||||
COMMAND luajit-minilua ../../tools/respack.lua manifest.respack default_config.cpp default_config.h
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src/libresrc
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_SOURCE_DIR}/src/libresrc/bitmap.cpp ${PROJECT_SOURCE_DIR}/src/libresrc/bitmap.h
|
||||
COMMAND luajit-minilua ../../tools/respack.lua manifest.respack ../libresrc/bitmap.cpp ../libresrc/bitmap.h
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src/bitmaps
|
||||
)
|
||||
|
||||
add_executable(luajit-buildvm
|
||||
vendor/luajit/src/host/buildvm.c
|
||||
vendor/luajit/src/host/buildvm_asm.c
|
||||
vendor/luajit/src/host/buildvm_peobj.c
|
||||
vendor/luajit/src/host/buildvm_lib.c
|
||||
vendor/luajit/src/host/buildvm_fold.c
|
||||
|
||||
vendor/luajit/src/gen/buildvm_arch.h
|
||||
)
|
||||
target_compile_definitions(luajit-buildvm PRIVATE LUAJIT_ENABLE_LUA52COMPAT)
|
||||
target_include_directories(luajit-buildvm PRIVATE vendor/luajit/src vendor/luajit/src/gen)
|
||||
if(UNIX)
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/lj_vm.s
|
||||
COMMAND luajit-buildvm -m elfasm -o lj_vm.s
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
)
|
||||
elseif(MSVC)
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/lj_vm.obj
|
||||
COMMAND luajit-buildvm -m peobj -o lj_vm.obj
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
)
|
||||
endif()
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/lj_ffdef.h
|
||||
COMMAND luajit-buildvm -m ffdef -o gen/lj_ffdef.h lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/lj_bcdef.h
|
||||
COMMAND luajit-buildvm -m bcdef -o gen/lj_bcdef.h lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/lj_folddef.h
|
||||
COMMAND luajit-buildvm -m folddef -o gen/lj_folddef.h lj_opt_fold.c
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/lj_recdef.h
|
||||
COMMAND luajit-buildvm -m recdef -o gen/lj_recdef.h lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/lj_libdef.h
|
||||
COMMAND luajit-buildvm -m libdef -o gen/lj_libdef.h lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/jit/vmdef.lua
|
||||
COMMAND luajit-buildvm -m vmdef -o jit/vmdef.lua lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
|
||||
)
|
||||
|
||||
add_library(luajit STATIC
|
||||
vendor/luajit/src/lib_base.c
|
||||
vendor/luajit/src/lib_math.c
|
||||
vendor/luajit/src/lib_bit.c
|
||||
vendor/luajit/src/lib_string.c
|
||||
vendor/luajit/src/lib_table.c
|
||||
vendor/luajit/src/lib_io.c
|
||||
vendor/luajit/src/lib_os.c
|
||||
vendor/luajit/src/lib_package.c
|
||||
vendor/luajit/src/lib_debug.c
|
||||
vendor/luajit/src/lib_jit.c
|
||||
vendor/luajit/src/lib_ffi.c
|
||||
vendor/luajit/src/lj_gc.c
|
||||
vendor/luajit/src/lj_err.c
|
||||
vendor/luajit/src/lj_char.c
|
||||
vendor/luajit/src/lj_bc.c
|
||||
vendor/luajit/src/lj_obj.c
|
||||
vendor/luajit/src/lj_buf.c
|
||||
vendor/luajit/src/lj_str.c
|
||||
vendor/luajit/src/lj_tab.c
|
||||
vendor/luajit/src/lj_func.c
|
||||
vendor/luajit/src/lj_udata.c
|
||||
vendor/luajit/src/lj_meta.c
|
||||
vendor/luajit/src/lj_debug.c
|
||||
vendor/luajit/src/lj_state.c
|
||||
vendor/luajit/src/lj_dispatch.c
|
||||
vendor/luajit/src/lj_vmevent.c
|
||||
vendor/luajit/src/lj_vmmath.c
|
||||
vendor/luajit/src/lj_strscan.c
|
||||
vendor/luajit/src/lj_strfmt.c
|
||||
vendor/luajit/src/lj_strfmt_num.c
|
||||
vendor/luajit/src/lj_api.c
|
||||
vendor/luajit/src/lj_profile.c
|
||||
vendor/luajit/src/lj_lex.c
|
||||
vendor/luajit/src/lj_parse.c
|
||||
vendor/luajit/src/lj_bcread.c
|
||||
vendor/luajit/src/lj_bcwrite.c
|
||||
vendor/luajit/src/lj_load.c
|
||||
vendor/luajit/src/lj_ir.c
|
||||
vendor/luajit/src/lj_opt_mem.c
|
||||
vendor/luajit/src/lj_opt_fold.c
|
||||
vendor/luajit/src/lj_opt_narrow.c
|
||||
vendor/luajit/src/lj_opt_dce.c
|
||||
vendor/luajit/src/lj_opt_loop.c
|
||||
vendor/luajit/src/lj_opt_split.c
|
||||
vendor/luajit/src/lj_opt_sink.c
|
||||
vendor/luajit/src/lj_mcode.c
|
||||
vendor/luajit/src/lj_snap.c
|
||||
vendor/luajit/src/lj_record.c
|
||||
vendor/luajit/src/lj_crecord.c
|
||||
vendor/luajit/src/lj_ffrecord.c
|
||||
vendor/luajit/src/lj_asm.c
|
||||
vendor/luajit/src/lj_trace.c
|
||||
vendor/luajit/src/lj_gdbjit.c
|
||||
vendor/luajit/src/lj_ctype.c
|
||||
vendor/luajit/src/lj_cdata.c
|
||||
vendor/luajit/src/lj_cconv.c
|
||||
vendor/luajit/src/lj_ccall.c
|
||||
vendor/luajit/src/lj_ccallback.c
|
||||
vendor/luajit/src/lj_carith.c
|
||||
vendor/luajit/src/lj_clib.c
|
||||
vendor/luajit/src/lj_cparse.c
|
||||
vendor/luajit/src/lj_lib.c
|
||||
vendor/luajit/src/lj_alloc.c
|
||||
vendor/luajit/src/lib_aux.c
|
||||
vendor/luajit/src/lib_init.c
|
||||
|
||||
vendor/luajit/src/gen/lj_ffdef.h
|
||||
vendor/luajit/src/gen/lj_bcdef.h
|
||||
vendor/luajit/src/gen/lj_folddef.h
|
||||
vendor/luajit/src/gen/lj_recdef.h
|
||||
vendor/luajit/src/gen/lj_libdef.h
|
||||
vendor/luajit/src/jit/vmdef.lua
|
||||
)
|
||||
target_compile_definitions(luajit PRIVATE LUAJIT_ENABLE_LUA52COMPAT)
|
||||
target_include_directories(luajit PRIVATE vendor/luajit/src/gen)
|
||||
if(MSVC)
|
||||
target_sources(luajit PRIVATE vendor/luajit/src/lj_vm.obj)
|
||||
else()
|
||||
target_sources(luajit PRIVATE vendor/luajit/src/lj_vm.s)
|
||||
set_property(SOURCE vendor/luajit/src/lj_vm.s PROPERTY LANGUAGE C)
|
||||
target_link_libraries(luajit ${CMAKE_DL_LIBS})
|
||||
endif()
|
||||
|
||||
add_library(resrc STATIC
|
||||
src/libresrc/bitmap.cpp
|
||||
src/libresrc/default_config.cpp
|
||||
src/libresrc/libresrc.cpp
|
||||
)
|
||||
|
||||
add_library(csri STATIC
|
||||
vendor/csri/lib/list.c
|
||||
vendor/csri/lib/wrap.c
|
||||
vendor/csri/subhelp/logging.c
|
||||
)
|
||||
target_include_directories(csri PRIVATE "vendor/csri/include")
|
||||
if(WIN32)
|
||||
target_include_directories(csri PRIVATE "vendor/csri/lib/win32")
|
||||
target_sources(csri PRIVATE vendor/csri/lib/win32/enumerate.c)
|
||||
else()
|
||||
target_include_directories(csri PRIVATE "vendor/csri/lib/posix")
|
||||
target_sources(csri PRIVATE vendor/csri/lib/posix/enumerate.c)
|
||||
endif()
|
||||
|
||||
add_executable(Aegisub WIN32
|
||||
src/command/app.cpp
|
||||
src/command/audio.cpp
|
||||
src/command/automation.cpp
|
||||
src/command/command.cpp
|
||||
src/command/edit.cpp
|
||||
src/command/grid.cpp
|
||||
src/command/help.cpp
|
||||
src/command/keyframe.cpp
|
||||
src/command/recent.cpp
|
||||
src/command/subtitle.cpp
|
||||
src/command/time.cpp
|
||||
src/command/timecode.cpp
|
||||
src/command/tool.cpp
|
||||
src/command/video.cpp
|
||||
src/command/vis_tool.cpp
|
||||
src/dialog_about.cpp
|
||||
src/dialog_align.cpp
|
||||
src/dialog_attachments.cpp
|
||||
src/dialog_automation.cpp
|
||||
src/dialog_autosave.cpp
|
||||
src/dialog_colorpicker.cpp
|
||||
src/dialog_detached_video.cpp
|
||||
src/dialog_dummy_video.cpp
|
||||
src/dialog_export.cpp
|
||||
src/dialog_export_ebu3264.cpp
|
||||
src/dialog_fonts_collector.cpp
|
||||
src/dialog_jumpto.cpp
|
||||
src/dialog_kara_timing_copy.cpp
|
||||
src/dialog_log.cpp
|
||||
src/dialog_paste_over.cpp
|
||||
src/dialog_progress.cpp
|
||||
src/dialog_properties.cpp
|
||||
src/dialog_resample.cpp
|
||||
src/dialog_search_replace.cpp
|
||||
src/dialog_selected_choices.cpp
|
||||
src/dialog_selection.cpp
|
||||
src/dialog_shift_times.cpp
|
||||
src/dialog_spellchecker.cpp
|
||||
src/dialog_style_editor.cpp
|
||||
src/dialog_style_manager.cpp
|
||||
src/dialog_styling_assistant.cpp
|
||||
src/dialog_text_import.cpp
|
||||
src/dialog_timing_processor.cpp
|
||||
src/dialog_translation.cpp
|
||||
src/dialog_video_details.cpp
|
||||
src/dialog_video_properties.cpp
|
||||
src/subtitle_format.cpp
|
||||
src/subtitle_format_ass.cpp
|
||||
src/subtitle_format_ebu3264.cpp
|
||||
src/subtitle_format_encore.cpp
|
||||
src/subtitle_format_microdvd.cpp
|
||||
src/subtitle_format_mkv.cpp
|
||||
src/subtitle_format_srt.cpp
|
||||
src/subtitle_format_ssa.cpp
|
||||
src/subtitle_format_transtation.cpp
|
||||
src/subtitle_format_ttxt.cpp
|
||||
src/subtitle_format_txt.cpp
|
||||
src/visual_tool.cpp
|
||||
src/visual_tool_clip.cpp
|
||||
src/visual_tool_cross.cpp
|
||||
src/visual_tool_drag.cpp
|
||||
src/visual_tool_rotatexy.cpp
|
||||
src/visual_tool_rotatez.cpp
|
||||
src/visual_tool_scale.cpp
|
||||
src/visual_tool_vector_clip.cpp
|
||||
src/MatroskaParser.c
|
||||
src/aegisublocale.cpp
|
||||
src/ass_attachment.cpp
|
||||
src/ass_dialogue.cpp
|
||||
src/ass_entry.cpp
|
||||
src/ass_export_filter.cpp
|
||||
src/ass_exporter.cpp
|
||||
src/ass_file.cpp
|
||||
src/ass_karaoke.cpp
|
||||
src/ass_override.cpp
|
||||
src/ass_parser.cpp
|
||||
src/ass_style.cpp
|
||||
src/ass_style_storage.cpp
|
||||
src/async_video_provider.cpp
|
||||
src/audio_box.cpp
|
||||
src/audio_colorscheme.cpp
|
||||
src/audio_controller.cpp
|
||||
src/audio_display.cpp
|
||||
src/audio_karaoke.cpp
|
||||
src/audio_marker.cpp
|
||||
src/audio_player.cpp
|
||||
src/audio_provider_factory.cpp
|
||||
src/audio_renderer.cpp
|
||||
src/audio_renderer_spectrum.cpp
|
||||
src/audio_renderer_waveform.cpp
|
||||
src/audio_timing_dialogue.cpp
|
||||
src/audio_timing_karaoke.cpp
|
||||
src/auto4_base.cpp
|
||||
src/auto4_lua.cpp
|
||||
src/auto4_lua_assfile.cpp
|
||||
src/auto4_lua_dialog.cpp
|
||||
src/auto4_lua_progresssink.cpp
|
||||
src/base_grid.cpp
|
||||
src/charset_detect.cpp
|
||||
src/colorspace.cpp
|
||||
src/colour_button.cpp
|
||||
src/compat.cpp
|
||||
src/context.cpp
|
||||
src/export_fixstyle.cpp
|
||||
src/export_framerate.cpp
|
||||
src/fft.cpp
|
||||
src/font_file_lister.cpp
|
||||
src/frame_main.cpp
|
||||
src/gl_text.cpp
|
||||
src/gl_wrap.cpp
|
||||
src/grid_column.cpp
|
||||
src/help_button.cpp
|
||||
src/hotkey.cpp
|
||||
src/hotkey_data_view_model.cpp
|
||||
src/image_position_picker.cpp
|
||||
src/initial_line_state.cpp
|
||||
src/main.cpp
|
||||
src/menu.cpp
|
||||
src/mkv_wrap.cpp
|
||||
src/pen.cpp
|
||||
src/persist_location.cpp
|
||||
src/preferences.cpp
|
||||
src/preferences_base.cpp
|
||||
src/project.cpp
|
||||
src/resolution_resampler.cpp
|
||||
src/search_replace_engine.cpp
|
||||
src/selection_controller.cpp
|
||||
src/spellchecker.cpp
|
||||
src/spline.cpp
|
||||
src/spline_curve.cpp
|
||||
src/string_codec.cpp
|
||||
src/subs_controller.cpp
|
||||
src/subs_edit_box.cpp
|
||||
src/subs_edit_ctrl.cpp
|
||||
src/subs_preview.cpp
|
||||
src/subtitles_provider.cpp
|
||||
src/subtitles_provider_libass.cpp
|
||||
src/text_file_reader.cpp
|
||||
src/text_file_writer.cpp
|
||||
src/text_selection_controller.cpp
|
||||
src/thesaurus.cpp
|
||||
src/timeedit_ctrl.cpp
|
||||
src/toggle_bitmap.cpp
|
||||
src/toolbar.cpp
|
||||
src/tooltip_manager.cpp
|
||||
src/utils.cpp
|
||||
src/validators.cpp
|
||||
src/vector2d.cpp
|
||||
src/version.cpp
|
||||
src/video_box.cpp
|
||||
src/video_controller.cpp
|
||||
src/video_display.cpp
|
||||
src/video_frame.cpp
|
||||
src/video_out_gl.cpp
|
||||
src/video_provider_cache.cpp
|
||||
src/video_provider_dummy.cpp
|
||||
src/video_provider_manager.cpp
|
||||
src/video_provider_yuv4mpeg.cpp
|
||||
src/video_slider.cpp
|
||||
src/visual_feature.cpp
|
||||
)
|
||||
target_link_libraries(Aegisub ${CMAKE_DL_LIBS} libaegisub luabins luajit resrc csri)
|
||||
target_compile_definitions(Aegisub PRIVATE CMAKE_BUILD)
|
||||
|
||||
set(WITH_BUILD_CREDIT OFF CACHE BOOL "Whether show build credit in about dialog")
|
||||
if(WITH_BUILD_CREDIT)
|
||||
set(BUILD_CREDIT "" CACHE STRING "Build credit shown in about dialog")
|
||||
target_compile_definitions(Aegisub PRIVATE "BUILD_CREDIT=${BUILD_CREDIT}")
|
||||
else()
|
||||
unset(BUILD_CREDIT CACHE)
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
set_target_properties(libaegisub PROPERTIES COMPILE_FLAGS "/Yu${PROJECT_SOURCE_DIR}/libaegisub/lagi_pre.h" COMPILE_FLAGS "/FI${PROJECT_SOURCE_DIR}/libaegisub/lagi_pre.h")
|
||||
else()
|
||||
target_compile_options(libaegisub PRIVATE -include "${PROJECT_SOURCE_DIR}/libaegisub/lagi_pre.h")
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
add_definitions("/DNOMINMAX /MP /DINITGUID")
|
||||
set_target_properties(Aegisub PROPERTIES COMPILE_FLAGS "/Yu${PROJECT_SOURCE_DIR}/src/agi_pre.h" COMPILE_FLAGS "/FI${PROJECT_SOURCE_DIR}/src/agi_pre.h")
|
||||
target_link_libraries(Aegisub Usp10)
|
||||
#target_sources(Aegisub PRIVATE src/res/res.rc src/res/strings.rc src/crash_writer_minidump.cpp)
|
||||
target_sources(Aegisub PRIVATE src/res/res.rc src/res/strings.rc src/crash_writer.cpp src/dpi_aware.manifest)
|
||||
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT Aegisub)
|
||||
else()
|
||||
target_sources(Aegisub PRIVATE src/crash_writer.cpp)
|
||||
target_compile_options(Aegisub PRIVATE -include "${PROJECT_SOURCE_DIR}/src/agi_pre.h")
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
target_sources(Aegisub PRIVATE src/font_file_lister_gdi.cpp)
|
||||
else()
|
||||
find_package(Fontconfig REQUIRED)
|
||||
target_include_directories(Aegisub PRIVATE ${Fontconfig_INCLUDE_DIRS})
|
||||
target_link_libraries(Aegisub ${Fontconfig_LIBRARIES})
|
||||
target_sources(Aegisub PRIVATE src/font_file_lister_fontconfig.cpp)
|
||||
endif()
|
||||
|
||||
find_package(ass REQUIRED)
|
||||
target_include_directories(Aegisub PRIVATE ${ass_INCLUDE_DIRS})
|
||||
target_link_libraries(Aegisub ${ass_LIBRARIES})
|
||||
|
||||
find_package(Boost REQUIRED chrono filesystem locale regex system thread)
|
||||
target_include_directories(libaegisub PRIVATE ${Boost_INCLUDE_DIRS})
|
||||
target_include_directories(Aegisub PRIVATE ${Boost_INCLUDE_DIRS})
|
||||
target_link_directories(Aegisub PRIVATE ${Boost_LIBRARY_DIRS})
|
||||
target_link_libraries(Aegisub ${Boost_LIBRARIES})
|
||||
|
||||
find_package(OpenGL REQUIRED)
|
||||
target_include_directories(Aegisub PRIVATE ${OPENGL_INCLUDE_DIR})
|
||||
target_link_libraries(Aegisub ${OPENGL_LIBRARIES})
|
||||
|
||||
find_package(Iconv REQUIRED)
|
||||
target_compile_definitions(libaegisub PRIVATE "HAVE_ICONV")
|
||||
target_include_directories(libaegisub PRIVATE ${Iconv_INCLUDE_DIRS})
|
||||
target_link_libraries(libaegisub ${Iconv_LIBRARIES})
|
||||
if(NOT Iconv_IS_BUILT_IN)
|
||||
target_compile_definitions(libaegisub PRIVATE "AGI_ICONV_CONST")
|
||||
endif()
|
||||
|
||||
find_package(ICU REQUIRED uc dt in)
|
||||
target_include_directories(libaegisub PRIVATE ${ICU_INCLUDE_DIRS})
|
||||
target_include_directories(Aegisub PRIVATE ${ICU_INCLUDE_DIRS})
|
||||
target_link_libraries(Aegisub ${ICU_LIBRARIES})
|
||||
|
||||
find_package(wxWidgets REQUIRED adv base core gl stc xml)
|
||||
include(${wxWidgets_USE_FILE})
|
||||
target_link_libraries(Aegisub ${wxWidgets_LIBRARIES})
|
||||
|
||||
find_package(ZLIB REQUIRED)
|
||||
target_include_directories(Aegisub PRIVATE ${ZLIB_INCLUDE_DIRS})
|
||||
target_link_libraries(Aegisub ${ZLIB_LIBRARIES})
|
||||
|
||||