Fix building unit tests targetting windows

Fixes MSVC's LNK4217 warnings and MinGW errors.
This commit is contained in:
Hyunjin Song
2018-11-13 19:33:28 +09:00
parent d9b91338ea
commit 244b70b4c8
4 changed files with 16 additions and 6 deletions

View File

@@ -54,6 +54,9 @@ jobs:
../cmake/build_win32.sh
make lmms
make
- run:
name: Build tests
command: cd build && make tests
- *ccache_stats
- *save_cache
mingw64:
@@ -71,6 +74,9 @@ jobs:
mkdir build && cd build
../cmake/build_win64.sh
make
- run:
name: Build tests
command: cd build && make tests
- *ccache_stats
- *save_cache
linux.gcc:

View File

@@ -24,12 +24,10 @@ else
"$TRAVIS_BUILD_DIR/.travis/$TRAVIS_OS_NAME.$TARGET_OS.script.sh"
make -j4
make tests
if [[ $TARGET_OS != win* ]]; then
make tests
tests/tests
fi
# Package and upload non-tagged builds

View File

@@ -116,12 +116,15 @@ TARGET_INCLUDE_DIRECTORIES(lmms
PUBLIC ${CMAKE_CURRENT_BINARY_DIR}
)
# GENERATE_EXPORT_HEADER doesn't do this automatically for OBJECT libraries
# CMake doesn't define target_EXPORTS for OBJECT libraries.
# See the documentation of DEFINE_SYMBOL for details.
# Also add LMMS_STATIC_DEFINE for targets linking against it.
TARGET_COMPILE_DEFINITIONS(lmmsobjs
PRIVATE -Dlmmsobjs_EXPORTS
INTERFACE -DLMMS_STATIC_DEFINE
)
TARGET_COMPILE_DEFINITIONS(lmms
PRIVATE -Dlmmsobjs_EXPORTS
PRIVATE $<TARGET_PROPERTY:lmmsobjs,INTERFACE_COMPILE_DEFINITIONS>
)
# Set Visual Studio startup project to lmms
@@ -389,4 +392,4 @@ ELSE(NOT MSVC)
# "${VCPKG_ROOT}/bin/libsoundio.dll"
# DESTINATION .)
#ENDIF()
ENDIF(NOT MSVC)
ENDIF(NOT MSVC)

View File

@@ -19,5 +19,8 @@ ADD_EXECUTABLE(tests
src/tracks/AutomationTrackTest.cpp
)
TARGET_COMPILE_DEFINITIONS(tests
PRIVATE $<TARGET_PROPERTY:lmmsobjs,INTERFACE_COMPILE_DEFINITIONS>
)
TARGET_LINK_LIBRARIES(tests ${QT_LIBRARIES} ${QT_QTTEST_LIBRARY})
TARGET_LINK_LIBRARIES(tests ${LMMS_REQUIRED_LIBS})