Merge pull request #1626 from LMMS/cmake_tests
CMake: Change the way tests links lmms
This commit is contained in:
@@ -6,7 +6,10 @@ env:
|
||||
- TARGET_OS=win64
|
||||
before_install:
|
||||
- if [ $TARGET_OS != linux ]; then sudo add-apt-repository ppa:tobydox/mingw -y; fi
|
||||
# Travis only has CMake 2.8.7, we need >=2.8.8:
|
||||
- if [ $TARGET_OS == linux ]; then sudo add-apt-repository ppa:kalakris/cmake -y; fi
|
||||
- sudo apt-get update -qq
|
||||
- if [ $TARGET_OS == linux ]; then sudo apt-get install -y cmake; fi
|
||||
install:
|
||||
- if [ $TARGET_OS != linux ]; then sudo apt-get install -y nsis cloog-isl libmpc2 mingw32; fi
|
||||
- if [ $TARGET_OS != linux ]; then sudo apt-get install -y mingw32-x-qt mingw32-x-sdl mingw32-x-libvorbis mingw32-x-fluidsynth mingw32-x-stk mingw32-x-glib2 mingw32-x-portaudio mingw32-x-libsndfile mingw32-x-fftw mingw32-x-flac mingw32-x-fltk mingw32-x-libsamplerate mingw32-x-pkgconfig mingw32-x-binutils mingw32-x-gcc mingw32-x-runtime mingw32-x-libgig; fi
|
||||
|
||||
@@ -64,17 +64,32 @@ ENDIF()
|
||||
# Enable C++11
|
||||
ADD_DEFINITIONS("-std=c++0x")
|
||||
|
||||
ADD_EXECUTABLE(lmms
|
||||
core/main.cpp
|
||||
${LMMS_SRCS}
|
||||
${LMMS_INCLUDES}
|
||||
${LMMS_UI_OUT}
|
||||
${LMMS_ER_H}
|
||||
"${WINRC}"
|
||||
)
|
||||
SET_TARGET_PROPERTIES(lmms PROPERTIES
|
||||
ENABLE_EXPORTS ON
|
||||
)
|
||||
# ADD_LIBRARY's OBJECT is only supported in CMake >=2.8.8
|
||||
IF(CMAKE_MAJOR_VERSION GREATER 2 OR
|
||||
CMAKE_MINOR_VERSION GREATER 8 OR
|
||||
CMAKE_PATCH_VERSION GREATER 7)
|
||||
|
||||
ADD_LIBRARY(lmmsobjs OBJECT
|
||||
${LMMS_SRCS}
|
||||
${LMMS_INCLUDES}
|
||||
${LMMS_UI_OUT}
|
||||
${LMMS_ER_H}
|
||||
)
|
||||
ADD_EXECUTABLE(lmms
|
||||
core/main.cpp
|
||||
$<TARGET_OBJECTS:lmmsobjs>
|
||||
"${WINRC}"
|
||||
)
|
||||
ELSE()
|
||||
ADD_EXECUTABLE(lmms
|
||||
core/main.cpp
|
||||
${LMMS_SRCS}
|
||||
${LMMS_INCLUDES}
|
||||
${LMMS_UI_OUT}
|
||||
${LMMS_ER_H}
|
||||
"${WINRC}"
|
||||
)
|
||||
ENDIF()
|
||||
|
||||
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LMMS_ER_H} ${LMMS_UI_OUT} lmmsconfig.h lmms.1.gz")
|
||||
|
||||
@@ -82,7 +97,7 @@ IF(LMMS_BUILD_WIN32)
|
||||
SET(EXTRA_LIBRARIES "-lwinmm")
|
||||
ENDIF()
|
||||
|
||||
TARGET_LINK_LIBRARIES(lmms
|
||||
SET(LMMS_REQUIRED_LIBS
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
${QT_LIBRARIES}
|
||||
${ASOUND_LIBRARY}
|
||||
@@ -95,6 +110,12 @@ TARGET_LINK_LIBRARIES(lmms
|
||||
${SNDFILE_LIBRARIES}
|
||||
${EXTRA_LIBRARIES}
|
||||
)
|
||||
# Expose required libs for tests binary
|
||||
SET(LMMS_REQUIRED_LIBS ${LMMS_REQUIRED_LIBS} PARENT_SCOPE)
|
||||
|
||||
TARGET_LINK_LIBRARIES(lmms
|
||||
${LMMS_REQUIRED_LIBS}
|
||||
)
|
||||
|
||||
IF(QT5)
|
||||
TARGET_LINK_LIBRARIES(lmms
|
||||
@@ -138,6 +159,7 @@ ENDFOREACH(_item ${qm_targets})
|
||||
IF(LMMS_BUILD_WIN32)
|
||||
SET_TARGET_PROPERTIES(lmms PROPERTIES
|
||||
LINK_FLAGS "${LINK_FLAGS} -mwindows"
|
||||
ENABLE_EXPORTS ON
|
||||
)
|
||||
ADD_CUSTOM_COMMAND(TARGET lmms POST_BUILD COMMAND "${STRIP}" "$<TARGET_FILE:lmms>")
|
||||
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
IF(CMAKE_MAJOR_VERSION LESS 2 OR
|
||||
CMAKE_MINOR_VERSION LESS 8 OR
|
||||
CMAKE_PATCH_VERSION LESS 8)
|
||||
MESSAGE("-- Unit tests are only available in CMake >=2.8.8. You have ${CMAKE_VERSION}")
|
||||
RETURN()
|
||||
ENDIF()
|
||||
|
||||
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}")
|
||||
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/include")
|
||||
INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}")
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++0x")
|
||||
|
||||
@@ -10,6 +18,8 @@ ADD_EXECUTABLE(tests
|
||||
EXCLUDE_FROM_ALL
|
||||
main.cpp
|
||||
QTestSuite
|
||||
|
||||
$<TARGET_OBJECTS:lmmsobjs>
|
||||
)
|
||||
TARGET_LINK_LIBRARIES(tests ${QT_LIBRARIES} ${QT_QTTEST_LIBRARY})
|
||||
TARGET_LINK_LIBRARIES(tests lmms)
|
||||
TARGET_LINK_LIBRARIES(tests ${LMMS_REQUIRED_LIBS})
|
||||
|
||||
Reference in New Issue
Block a user