Clean up more CMake flags;

This commit is contained in:
bjorn 2018-05-02 19:01:20 -07:00 committed by bjornbytes
parent 04a5202d0d
commit 615144c74a
1 changed files with 15 additions and 18 deletions

View File

@ -5,16 +5,16 @@ project(lovr)
if(EMSCRIPTEN) if(EMSCRIPTEN)
string(CONCAT LOVR_EMSCRIPTEN_FLAGS string(CONCAT LOVR_EMSCRIPTEN_FLAGS
"-O3 " "-O3 "
"-s USE_WEBGL2=1 " "-s WASM=1 "
"-s FULL_ES3=1 "
"-s FORCE_FILESYSTEM=1 "
"-s USE_FREETYPE=1 " "-s USE_FREETYPE=1 "
"-s USE_GLFW=3 " "-s USE_GLFW=3 "
"-s USE_WEBGL2=1 "
"-s USE_ZLIB=1 " "-s USE_ZLIB=1 "
"-s FULL_ES3=1 "
"-s FORCE_FILESYSTEM=1 "
"-s ALLOW_MEMORY_GROWTH=1 " "-s ALLOW_MEMORY_GROWTH=1 "
"-s \"EXPORTED_FUNCTIONS=['_main','_quat_getAngleAxis']\" " "-s \"EXPORTED_FUNCTIONS=['_main','_quat_getAngleAxis']\" "
"-s \"EXTRA_EXPORTED_RUNTIME_METHODS=['getValue','setValue']\" " "-s \"EXTRA_EXPORTED_RUNTIME_METHODS=['getValue','setValue']\" "
"-s WASM=1 "
"--js-library \"${CMAKE_CURRENT_SOURCE_DIR}/src/resources/lovr.js\"" "--js-library \"${CMAKE_CURRENT_SOURCE_DIR}/src/resources/lovr.js\""
) )
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LOVR_EMSCRIPTEN_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LOVR_EMSCRIPTEN_FLAGS}")
@ -94,16 +94,14 @@ else()
endif() endif()
# FreeType # FreeType
if (EMSCRIPTEN) if(WIN32)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -s USE_FREETYPE=1")
elseif (WIN32)
set(FREETYPE_NO_DIST TRUE CACHE BOOL "") set(FREETYPE_NO_DIST TRUE CACHE BOOL "")
set(BUILD_SHARED_LIBS OFF) set(BUILD_SHARED_LIBS OFF)
add_subdirectory(deps/freetype freetype) add_subdirectory(deps/freetype freetype)
set(BUILD_SHARED_LIBS ON) set(BUILD_SHARED_LIBS ON)
include_directories(deps/freetype/include) include_directories(deps/freetype/include)
set(LOVR_FREETYPE freetype) set(LOVR_FREETYPE freetype)
else() elseif(NOT EMSCRIPTEN)
pkg_search_module(FREETYPE REQUIRED freetype2) pkg_search_module(FREETYPE REQUIRED freetype2)
include_directories(${FREETYPE_INCLUDE_DIRS}) include_directories(${FREETYPE_INCLUDE_DIRS})
set(LOVR_FREETYPE ${FREETYPE_LIBRARIES}) set(LOVR_FREETYPE ${FREETYPE_LIBRARIES})
@ -202,7 +200,7 @@ else()
endif() endif()
# OpenGL # OpenGL
if(NOT WIN32) if(NOT WIN32 AND NOT EMSCRIPTEN)
find_package(OpenGL REQUIRED) find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIRS}) include_directories(${OPENGL_INCLUDE_DIRS})
set(LOVR_OPENGL ${OPENGL_LIBRARIES}) set(LOVR_OPENGL ${OPENGL_LIBRARIES})
@ -230,7 +228,7 @@ if(NOT WIN32 AND NOT EMSCRIPTEN)
set(LOVR_PTHREADS Threads::Threads) set(LOVR_PTHREADS Threads::Threads)
endif() endif()
# LÖVR # LÖVR source
set(LOVR_SRC set(LOVR_SRC
src/api/audio.c src/api/audio.c
src/api/data.c src/api/data.c
@ -312,6 +310,7 @@ set(LOVR_SRC
src/util.c src/util.c
) )
# Conditional sources
if(EMSCRIPTEN) if(EMSCRIPTEN)
set(LOVR_SRC ${LOVR_SRC} src/headset/webvr.c) set(LOVR_SRC ${LOVR_SRC} src/headset/webvr.c)
else() else()
@ -326,13 +325,7 @@ else()
) )
endif() endif()
if(WIN32) # LÖVR
if(MSVC_VERSION VERSION_LESS 1900)
add_definitions(-Dinline=__inline)
add_definitions(-Dsnprintf=_snprintf)
endif()
endif()
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
add_executable(lovr ${LOVR_SRC}) add_executable(lovr ${LOVR_SRC})
set_property(TARGET lovr PROPERTY C_STANDARD 99) set_property(TARGET lovr PROPERTY C_STANDARD 99)
@ -349,15 +342,19 @@ target_link_libraries(lovr
${LOVR_OPENVR} ${LOVR_OPENVR}
${LOVR_PHYSFS} ${LOVR_PHYSFS}
${LOVR_PTHREADS} ${LOVR_PTHREADS}
${LOVR_EMSCRIPTEN_FLAGS} ${LOVR_EMSCRIPTEN_FLAGS}
) )
# Yay Windows
if(WIN32) if(WIN32)
set_target_properties(lovr PROPERTIES COMPILE_FLAGS "/wd4244") set_target_properties(lovr PROPERTIES COMPILE_FLAGS "/wd4244")
set_target_properties(lovr PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE") set_target_properties(lovr PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
set_target_properties(lovr PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:windows /ENTRY:mainCRTStartup") set_target_properties(lovr PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")
if(MSVC_VERSION VERSION_LESS 1900)
target_compile_definitions(lovr PUBLIC -Dinline=__inline -Dsnprintf=_snprintf)
endif()
function(move_dll ARG_TARGET) function(move_dll ARG_TARGET)
add_custom_command(TARGET lovr POST_BUILD add_custom_command(TARGET lovr POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy COMMAND ${CMAKE_COMMAND} -E copy