Build: Fix build/install with Xcode IDE

Closes #355
This commit is contained in:
DRC
2019-07-02 11:28:26 -05:00
parent 509c2680aa
commit f37b7c1f96
3 changed files with 11 additions and 8 deletions

View File

@@ -536,7 +536,7 @@ elseif(NOT WITH_12BIT)
endif() endif()
if(WITH_SIMD) if(WITH_SIMD)
message(STATUS "SIMD extensions: ${CPU_TYPE} (WITH_SIMD = ${WITH_SIMD})") message(STATUS "SIMD extensions: ${CPU_TYPE} (WITH_SIMD = ${WITH_SIMD})")
if(MSVC_IDE) if(MSVC_IDE OR XCODE)
set_source_files_properties(${SIMD_OBJS} PROPERTIES GENERATED 1) set_source_files_properties(${SIMD_OBJS} PROPERTIES GENERATED 1)
endif() endif()
else() else()
@@ -666,7 +666,7 @@ add_executable(wrjpgcom wrjpgcom.c)
add_subdirectory(md5) add_subdirectory(md5)
if(MSVC_IDE) if(MSVC_IDE OR XCODE)
set(OBJDIR "\${CTEST_CONFIGURATION_TYPE}/") set(OBJDIR "\${CTEST_CONFIGURATION_TYPE}/")
else() else()
set(OBJDIR "") set(OBJDIR "")
@@ -1342,7 +1342,7 @@ if(WITH_TURBOJPEG)
install(TARGETS turbojpeg-static ARCHIVE install(TARGETS turbojpeg-static ARCHIVE
DESTINATION ${CMAKE_INSTALL_LIBDIR}) DESTINATION ${CMAKE_INSTALL_LIBDIR})
if(NOT ENABLE_SHARED) if(NOT ENABLE_SHARED)
if(MSVC_IDE) if(MSVC_IDE OR XCODE)
set(DIR "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}") set(DIR "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}")
else() else()
set(DIR ${CMAKE_CURRENT_BINARY_DIR}) set(DIR ${CMAKE_CURRENT_BINARY_DIR})
@@ -1358,7 +1358,7 @@ endif()
if(ENABLE_STATIC) if(ENABLE_STATIC)
install(TARGETS jpeg-static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(TARGETS jpeg-static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
if(NOT ENABLE_SHARED) if(NOT ENABLE_SHARED)
if(MSVC_IDE) if(MSVC_IDE OR XCODE)
set(DIR "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}") set(DIR "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}")
else() else()
set(DIR ${CMAKE_CURRENT_BINARY_DIR}) set(DIR ${CMAKE_CURRENT_BINARY_DIR})

View File

@@ -23,7 +23,7 @@ foreach(src ${JPEG_SOURCES})
set(JPEG_SRCS ${JPEG_SRCS} ../${src}) set(JPEG_SRCS ${JPEG_SRCS} ../${src})
endforeach() endforeach()
if(WITH_SIMD AND MSVC_IDE) if(WITH_SIMD AND (MSVC_IDE OR XCODE))
# This tells CMake that the "source" files haven't been generated yet # This tells CMake that the "source" files haven't been generated yet
set_source_files_properties(${SIMD_OBJS} PROPERTIES GENERATED 1) set_source_files_properties(${SIMD_OBJS} PROPERTIES GENERATED 1)
endif() endif()

View File

@@ -135,6 +135,9 @@ endif()
if(MSVC_IDE) if(MSVC_IDE)
set(OBJDIR "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}") set(OBJDIR "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
string(REGEX REPLACE " " ";" CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS}") string(REGEX REPLACE " " ";" CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS}")
elseif(XCODE)
set(OBJDIR "${CMAKE_CURRENT_BINARY_DIR}")
string(REGEX REPLACE " " ";" CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS}")
endif() endif()
file(GLOB INC_FILES nasm/*.inc) file(GLOB INC_FILES nasm/*.inc)
@@ -162,13 +165,13 @@ foreach(file ${SIMD_SOURCES})
${CMAKE_CURRENT_SOURCE_DIR}/${DEPFILE}) ${CMAKE_CURRENT_SOURCE_DIR}/${DEPFILE})
endif() endif()
set(OBJECT_DEPENDS ${OBJECT_DEPENDS} ${INC_FILES}) set(OBJECT_DEPENDS ${OBJECT_DEPENDS} ${INC_FILES})
if(MSVC_IDE) if(MSVC_IDE OR XCODE)
# The CMake Visual Studio generators do not work properly with the ASM_NASM # The CMake Visual Studio generators do not work properly with the ASM_NASM
# language, so we have to go rogue here and use a custom command like we # language, so we have to go rogue here and use a custom command like we
# did in prior versions of libjpeg-turbo. (This is why we can't have nice # did in prior versions of libjpeg-turbo. (This is why we can't have nice
# things.) # things.)
string(REGEX REPLACE "${CPU_TYPE}/" "" filename ${file}) string(REGEX REPLACE "${CPU_TYPE}/" "" filename ${file})
set(SIMD_OBJ ${OBJDIR}/${filename}.obj) set(SIMD_OBJ ${OBJDIR}/${filename}${CMAKE_C_OUTPUT_EXTENSION})
add_custom_command(OUTPUT ${SIMD_OBJ} DEPENDS ${file} ${OBJECT_DEPENDS} add_custom_command(OUTPUT ${SIMD_OBJ} DEPENDS ${file} ${OBJECT_DEPENDS}
COMMAND ${CMAKE_ASM_NASM_COMPILER} -f${CMAKE_ASM_NASM_OBJECT_FORMAT} COMMAND ${CMAKE_ASM_NASM_COMPILER} -f${CMAKE_ASM_NASM_OBJECT_FORMAT}
${CMAKE_ASM_NASM_FLAGS} ${CMAKE_CURRENT_SOURCE_DIR}/${file} ${CMAKE_ASM_NASM_FLAGS} ${CMAKE_CURRENT_SOURCE_DIR}/${file}
@@ -180,7 +183,7 @@ foreach(file ${SIMD_SOURCES})
endif() endif()
endforeach() endforeach()
if(MSVC_IDE) if(MSVC_IDE OR XCODE)
set(SIMD_OBJS ${SIMD_OBJS} PARENT_SCOPE) set(SIMD_OBJS ${SIMD_OBJS} PARENT_SCOPE)
add_library(simd OBJECT ${CPU_TYPE}/jsimd.c) add_library(simd OBJECT ${CPU_TYPE}/jsimd.c)
add_custom_target(simd-objs DEPENDS ${SIMD_OBJS}) add_custom_target(simd-objs DEPENDS ${SIMD_OBJS})